Docker-Compose method - Recommended

Install Docker

Update the repo to get latest versions

sudo apt update

Install the latest version

sudo apt install docker.io

Set Docker to start on startup

sudo systemctl enable --now docker

Give your user permissions to docker, replacing user with your username

sudo usermod -aG docker user

Once you have run this command close and reopen your session if you accessing remotely. This is to apply the permissions in the above step

Test it has installed correctly by getting the docker version

docker --version

Docker Compose

I also install docker-compose as some dockers need you to compose from a yml file. This downloads v2.16.0, just change this if the version updates to a later version

sudo curl -L "https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Give permissions to this

sudo chmod +x /usr/local/bin/docker-compose

Test it has installed correctly by getting the docker-compose version

docker-compose --version

Install Mealie

I keep all my dockers in a dockers folder in my home directory. If it doesn’t exist already, create this folder:-

mkdir ~/dockers

Now create a folder for Mealie to live in.

mkdir ~/dockers/mealie

Create a folder for the data

mkdir ~/dockers/mealie/data  

Change directory to this folder

cd ~/dockers/mealie

Create a docker-compose.yml file

nano docker-compose.yml

Paste the following. Change the first 9926 part of 9926:3000 if you want it to listen on an alternative port to port 9926. If you have a custom domain update the BASE_URL at BASE_URL=https://mealie.domain.com and remove the #

version: "3.7"
services:
    mealie-frontend:
        image: hkotel/mealie:frontend-nightly
        container_name: mealie-frontend
        depends_on:
            - mealie-api
        environment:
        # Set Frontend ENV Variables Here
            - API_URL=http://mealie-api:9000 #
        restart: always
        ports:
            - "9926:3000" #
        volumes:
            - ./data:/app/data/ #
    mealie-api:
        image: hkotel/mealie:api-nightly
        container_name: mealie-api
        depends_on:
            - postgres
        volumes:
            - ./data:/app/data/
        environment:
            # Set Backend ENV Variables Here
            - ALLOW_SIGNUP=true
            - PUID=1000
            - PGID=1000
            - TZ=Europe/London
            - MAX_WORKERS=1
            - WEB_CONCURRENCY=1
            #- BASE_URL=https://mealie.domain.com
            # Database Settings
            - DB_ENGINE=postgres
            - POSTGRES_USER=mealie
            - POSTGRES_PASSWORD=mealie
            - POSTGRES_SERVER=postgres
            - POSTGRES_PORT=5432
            - POSTGRES_DB=mealie
        restart: always
    postgres:
        container_name: postgres
        image: postgres
        restart: always
        environment:
            POSTGRES_PASSWORD: mealie
            POSTGRES_USER: mealie

Save the file with ctl + x, then y to save.

Run the docker-compose file with the following:-

docker-compose up -d

Browse to the server ip and the port mentioned in the compose file, eg http://1.1.1.1:9926 and you should get the default dashboard.