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.