Quick Installation
Minimum configuration requirements
| Dependency | Value |
|---|---|
| Operating system | Linux, Windows, MacOS |
| Instruction architecture | x86_64, arm64 |
| Software dependency | Docker version 20.10.14 or above |
| Software dependency | Docker Compose version 2.0.0 or above |
| Minimum environment | 1 core CPU / 1 GB memory / 5 GB disk |
| IP address | Static IP |
0. Prerequisites
It is recommended that your device or server that you will be installing MyFin on has a static IP address.
If you are going to be the only user and will be installing and using it on the same device. Then this is not needed however if multiple users are going to connect to it from different devices on your network, this is needed.
We recommend assigning an address outside your router’s automatic DHCP range, or creating a DHCP reservation on your router.
If you are going to run this on a VPS, you will already be set up and given a static IP address.
Please consult you Operating Systems manuals on how to do this.
1. Install Docker
Install the latest version of Docker. If you already have Docker installed, please skip this step.
On Windows or MacOS, download and use Docker’s Desktop Application:
https://www.docker.com/get-started/
If you are using a linux based VPS or operating system. You can use Docker’s installation script:
curl -sSL "https://get.docker.com/" | bashor
wget -qO- https://get.docker.com | shOr see the guide of your Operating system directly on Docker’s website:
https://docs.docker.com/engine/install
2. Create a working directory
Create a directory for Myfin to use, Myfin will write its configuration and data to this directory. (You need to have at least 5GB of disk space)
examples,
on Windows:
Create a folder on the C drive called "Myfin"
on Linux:
mkdir -p "/docker/myfin"
on MacOs:
Create a folder in the users "Documents" folder called "Myfin"
It does not matter what it is called, as long as it is in a folder that you. have access and permission to use.
3. Docker compose file
In the folder you created, create a file called:
docker-compose.yml
Copy and pasted the following into that file:
services:
myfin:
image: <image version>
container_name: myfin
restart: always
ports:
- ${PUB_PORT}:${INTERNAL_PORT}
depends_on:
db:
condition: service_healthy
env_file:
- .env
networks:
- frontend
- backend
db:
container_name: myfin_db
image: mysql:8.0
restart: always
command: --default-authentication-plugin=mysql_native_password --skip-ssl
environment:
MYSQL_DATABASE: ${DATABASE_NAME}
MYSQL_USER: ${DATABASE_USER}
MYSQL_PASSWORD: ${DATABASE_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD}
MYSQL_ROOT_HOST: '%'
volumes:
- ./db_data:/var/lib/mysql
networks:
- backend
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DATABASE_ROOT_PASSWORD}"]
interval: 5s
timeout: 5s
retries: 20
start_period: 30s
networks:
frontend:
driver: bridge
backend:
driver: bridge
internal: truemake sure to change <image version> with the correct software version.
If you are using a subscription license use the following image:
image: get.myfin-hub.com/myfin/subscription:latestof you are using a perpetual license use the version your license if for, for example:
image: get.myfin-hub.com/myfin/V0:latest
or
image: get.myfin-hub.com/myfin/V1:latest
etcSave and close the file
4. Write Environment variables
In the same folder, create a file called .env
Copy and pasted in the following into that file:
# The internal and external ports to use
INTERNAL_PORT=3000
# Public port can be 80 if you are not using other software or a reverse proxy that uses port 80
PUB_PORT=3000
# name of domain you access MyFin from, eg http://localhost:3000, https://myfin-pc.local, http://192.168.0.250 etc
DOMAIN_URL=<Your domain or IP address>
# Set to 0 if you are using a trusted certificate for SSL (https), set to 1 if using self signed
ALLOW_SELF_SIGNED_CERTS=1
# db host will be the name of the postgres container in the compose file
DATABASE_HOST=db
DATABASE_PORT=3306
DATABASE_USER=myfin_user
DATABASE_PASSWORD=<a long user password>
DATABASE_NAME=myfin
DATABASE_ROOT_PASSWORD=<a long root user password>
# Used to encrypt your SMTP password
SMTP_ENCRYPTION_KEY=<A 64 char random sting of numbers and chars>
# To enable or disable email sending
EMAIL_SEND_MAIL=<true or false>
# SMTP for User invites, password resets etc etc
EMAIL_SENDER_HOST=
EMAIL_SENDER_PORT=
EMAIL_SENDER_USER=
EMAIL_SENDER_PASS=
# Passkey url, You instance domain name without http / https, eg your-server.com, localhost, 192.168.0.250
AUTH_RRP_ID=
# Log in session length
AUTH_SESSION_HOURS=95. Launch Myfin
Everything is ready to start the Myfin service.
In the same folder open up your terminal and run the following command
docker compose up -dThis process may take several minutes, so give it a bit of time to get started.
After a few minutes, using your favorite browser, goto:
http://<Your domain or IP address>:<PUB_PORT>to get use your new MyFin software, for example
http://localhost:3000
or
http://192.168.0.225:30006. Firewall
You may need to consult your operating system or Anivirus / Firewall application on how to allow your software and in particular, the port
you used for PUB_PORT=3000 in order for other devices on the network be able to connect to the MyFin app.