Mealie Installation Steps

Gokberk Gunes   —   Server

Table of Contents

Installation of Mealie

In this guide, we will install mealie with docker given that how straightforward it is. The first step is to create a folder to hold all the setting file that is used to run docker. Accordingly, create a folder and a file under this folder using commands:

mkdir mealie
touch mealie/mealie-settings.yml

We should fill this file with our desired settings. At the time of writing of this guide , I used below to create my mealie instance:

version: "3.7"
services:
  mealie:
    image: ghcr.io/mealie-recipes/mealie:v1.0.0-RC1.1
    container_name: mealie
    ports:
        - "9925:9000" #
    deploy:
      resources:
        limits:
          memory: 1000M #
    volumes:
      - mealie-data:/app/data/
    environment:
    # Set Backend ENV Variables Here
      - ALLOW_SIGNUP=false
      - APP_DEFAULT_DARK_MODE=true
      - PUID=1000
      - PGID=1000
      - MAX_WORKERS=1
      - WEB_CONCURRENCY=1
      - BASE_URL=https://mealie.berksen.com
    restart: always

volumes:
  mealie-data:
    driver: local

On mealie’s website, the suggested settings can be found to fill docker settings file, mealie-settings.yml. The direct link to SQLite based suggested settings are given in here. Moreover, information on the variables be found in this link.

The next step is to deploy the mealie using docker. To start the installation, run the docker installation command: doas docker-compose up -d. Additionally, we may use this command to restart after changing the settings in docker-compose.yaml.

After the installation is done, you may reach the server using http://local_ip_of_server:9925, e.g., http://192.168.0.10:9925. If we are installing mealie to our own computer, we can reach to mealie by going to http://localhost:9925. We will use the admin account to log in to change settings. As the login credentials, we should use changeme@example.com and MyPassword. Since these credentials belong to admin account, we must be change them. Note that, if the credentials are not working, we can refer to mealie documentation.

After logging in, we should go to settings tab and change the credentials for admin account there. Additionally, since we have disabled registration with ALLOW_SIGNUP=false setting earlier, we need to create users1.

Host Mealie on the World Wide Web

First, we must get a CNAME in our domain. For this, we should go to the domain provider and register a CNAME as we wish. In this tutorial, this is mealie.berksen.net.

Now, we should tell nginx to redirect all the visitors of mealie.berksen.net to our local website. This can be set by appending the piece of setting given below to nginx.conf.

http {
	server {
		server_name mealie.berksen.net;
		location / {
			proxy_pass http://127.0.0.1:9925;
		}
	}
}

Enable Encryption (https)

Encryption is a vital requirement for any activity online. For mealie, this is done very easily by using the great tool certbot. Simply, we should run certbot as the root user to generate a certificate. To do this, run doas certbot and generate the https certificate.


  1. This is done to avoid setting mail server and settings related to it. ↩︎