MoneyManager EX (running a Linux image on Synology via Docker)

12
0
NAS
DS118
Operating system
  1. Windows
Mobile operating system
  1. Android
Hi all,

I really like using MoneyManager EX as a money management solution (I've tried the others, but this is the one that really works for my personal circumstances) - MoneyManager Ex

I want to be able to run my own version on my Synology so that I can keep my finances up-to-date on the move, but struggling to figure out how to make this work. There is a Github for this at GitHub - moneymanagerex/moneymanagerex: Money Manager Ex is an easy to use, money management application built with wxWidgets and I've asked both on the main forums for MoneyManager and in the Github forums about a Docker containerised version of MMex - and I was pointed at a Docker page which is used to make the Linux builds: Docker

However - how to get one of those containers (and which one - Fedora, Ubuntu, something else?) running via Docker on my Synology? I'm already using Docker for a ton of other stuff quite happily, but I've never figured out, or had to just use a random Linux container before and I'm really no Linux expert... bonus points for helping to figure out how to set up the DDNS for it - again, I've got this working for other stuff happily, just not sure if that bit is different for this scenario.

Thanks in advance for any help anyone can render - it'd make a fine new tutorial on here too.
 
Last edited:
However - how to get one of those containers (and which one - Fedora, Ubuntu, something else?) running via Docker on my Synology?
Those images are not meant to be used to run the application. They are meant to be used to generate an image that contains the installation package for a specific os. You could create a multi-staged Dockerfile, based on a Dockerfile of the OS flavor you feel comfortable with and "complete" it to be a real image. You would still need to figure out how a useful entrypoint script would look like for this application.

You can find the Dockerfiles here: moneymanagerex/dockers at master · moneymanagerex/moneymanagerex

It is quite odd, that the Dockerfiles are in a folder called "dockers", no one that actually understands containers would call it like that. There is no such thing as "dockers".

I am sorry to say there is no quick win if there is no existing image maintained by someone else, otherwise you will have to create and maintain your own image.
-- post merged: --

I didn't see that it's a desktop application. You will need an xserver and something like vnc to connect to the remote desktop that runs inside the container.

That's a rather advanced use case.
 
Apparently the shared images are not even to compile the binary. They are just images used in a build pipeline, to provide the required tooling while building the binary.

You can create your own image using this Dockerfile:
Code:
FROM accetto/xubuntu-vnc-novnc:latest
ARG MMEX_VERSION=1.6.4

USER root

RUN apt update && \
    . /etc/os-release && \
    curl --location  --output /tmp/mmex_${MMEX_VERSION}-Ubuntu.${VERSION_ID}.${VERSION_CODENAME}_amd64.deb \
      https://github.com/moneymanagerex/moneymanagerex/releases/download/v${MMEX_VERSION}/mmex_${MMEX_VERSION}-Ubuntu.${VERSION_ID}.${VERSION_CODENAME}_amd64.deb && \
    apt install -y /tmp//mmex_${MMEX_VERSION}-Ubuntu.${VERSION_ID}.${VERSION_CODENAME}_amd64.deb && \
    rm -f /tmp/mmex_${MMEX_VERSION}-Ubuntu.${VERSION_ID}.${VERSION_CODENAME}_amd64.deb && \
    apt clean && \
    rm -rf /var/lib/apt/lists/*

USER 1001
Save the content in a file called "Dockerfile". You can build it using the command docker build -t local/mmex:1.6.4 . (just to be sure: the dot at the end is important).

Note: Since the base image already has an entrypoint script that drops you in a desktop environment, there is no need to write your own.

You can run a container based on the image (after building it) with this command: docker run -d -p 6901:6901 -e VNC_PW=mynewpwd local/mmex:1.6.4

Once the container is started, you can access it from http://dsm-ip:6901. The password is whatever you pick as value for the "VNC_PW" environment variable.

The used base image accetto/xubuntu-vnc-novnc:latest provides further configuration options: Docker.

From what I saw, you can add a volume to a container path of your choosing, as you can select the database location on application start. Furthermore, you will want to find out, where mmex stores its application configuration, to make sure you don't lose the configuration when the container is replaced.
 
Wowser, guys this is all amazing advice - and so quick too, thank you! The Docker scripts - that's for running from a command line? (Sorry, I'm a relative noob to all this but just know what I want to achieve as an end goal, happy to learn along the way!)
 
Like I wrote in the post: you need to create a file called Dockerfile with the content I shared above, then you need to run the command (I also shared) to build the image in the folder where you stored the Dockerfile. You will probably require to prefix the docker commands with sudo.

I have zero plans on publishing an image based on the Dockerfile I shared on Dockerhub, as I don't use or know the application, and don't look forward to maintaining something I don't personally use. The Dockerfile I provided is meant to be a starting point for you to extend (in case something is missing).

Since the database location can be freely picked, creating a volume mapping for it should be a no-brainer.
Though, the documentation does not mention where the application configuration itself is stored, so you will want to find out and create a volume mapping for that container path as well. Otherwise, the application would always "forget" the configuration when the container is re-created.

Relevant Documentation:
 
Like I wrote in the post: you need to create a file called Dockerfile with the content I shared above, then you need to run the command (I also shared) to build the image in the folder where you stored the Dockerfile. You will probably require to prefix the docker commands with sudo.

I have zero plans on publishing an image based on the Dockerfile I shared on Dockerhub, as I don't use or know the application, and don't look forward to maintaining something I don't personally use. The Dockerfile I provided is meant to be a starting point for you to extend (in case something is missing).

Since the database location can be freely picked, creating a volume mapping for it should be a no-brainer.
Though, the documentation does not mention where the application configuration itself is stored, so you will want to find out and create a volume mapping for that container path as well. Otherwise, the application would always "forget" the configuration when the container is re-created.

Relevant Documentation:
Thank you for this - I'll give it a go and see where I get - worst case I learn something as I go!
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

Similar threads

How did you create the Portainer container in first place? As in exact docker run commands or in case...
Replies
7
Views
2,135

Welcome to SynoForum.com!

SynoForum.com is an unofficial Synology forum for NAS owners and enthusiasts.

Registration is free, easy and fast!

Trending threads

Back
Top