Skip to main content

Docker

Version Pinning

Please note that I highly recommend pinning the release version to a specific release if your event is coming up soon. This will ensure any releases pushed in the days leading up to your event won't break your site.

To do this all you need to do is replace the latest tag in the commands with the release version instead. E.g., memtly/memtly:1.0.0

Run

docker run --name Memtly -h memtly -p 8080:5000 -v /var/lib/docker/volumes/memtly-config/_data:/app/config:rw -v /var/lib/docker/volumes/memtly-thumbnails/_data:/app/thumbnails:rw -v /var/lib/docker/volumes/memtly-uploads/_data:/app/uploads:rw -v /var/lib/docker/volumes/memtly-custom-resources/_data:/app/custom_resources:rw --restart always memtly/memtly:latest
services:
mariadb:
container_name: 'mariadb'
image: 'mariadb:latest'
ports:
- '3306:3306/tcp'
environment:
MYSQL_ROOT_HOST: '%'
MYSQL_ROOT_PASSWORD: 'ChangeMe!'
MYSQL_DATABASE: 'memtly'
MYSQL_USER: 'memtly'
MYSQL_PASSWORD: 'ChangeMe!'
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- data-volume-mariadb:/var/lib/mysql:rw
command: ["mysqld","--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci"]
networks:
- memtly-net
hostname: 'mariadb'
restart: 'always'
memtly:
container_name: Memtly
image: memtly/memtly:latest
ports:
- '${HTTP_PORT:-8080}:5000/tcp'
environment:
TITLE: 'Memtly'
DATABASE_TYPE: 'mariadb'
DATABASE_CONNECTION_STRING: 'Server=mariadb;Port=3306;Database=memtly;User=memtly;Password=ChangeMe!;'
ACCOUNT_ADMIN_PASSWORD: 'admin'
ENCRYPTION_KEY: 'ChangeMe'
ENCRYPTION_SALT: 'ChangeMe'
volumes:
- data-volume-config:/app/config
- data-volume-thumbnails:/app/thumbnails
- data-volume-uploads:/app/uploads
- data-volume-custom-resources:/app/custom_resources
networks:
- memtly-net
hostname: memtly
restart: always
depends_on:
- mariadb
volumes:
data-volume-config:
name: Memtly-Config
data-volume-thumbnails:
name: Memtly-Thumbnails
data-volume-uploads:
name: Memtly-Uploads
data-volume-custom-resources:
name: Memtly-CustomResources
data-volume-mariadb:
name: Memtly-MariaDB
networks:
memtly-net:
name: 'memtly-net'
external: false

Compose (MySQL)

services:
mysql:
container_name: 'mysql'
image: 'mysql:latest'
ports:
- '3306:3306/tcp'
environment:
MYSQL_ROOT_HOST: '%'
MYSQL_ROOT_PASSWORD: 'ChangeMe!'
MYSQL_DATABASE: 'memtly'
MYSQL_USER: 'memtly'
MYSQL_PASSWORD: 'ChangeMe!'
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- data-volume-mysql:/var/lib/mysql:rw
command: ["mysqld","--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci"]
networks:
- memtly-net
hostname: 'mysql'
restart: 'always'
memtly:
container_name: Memtly
image: memtly/memtly:latest
ports:
- '${HTTP_PORT:-8080}:5000/tcp'
environment:
TITLE: 'Memtly'
DATABASE_TYPE: 'mysql'
DATABASE_CONNECTION_STRING: 'Server=mysql;Port=3306;Database=memtly;User=memtly;Password=ChangeMe!;'
ACCOUNT_ADMIN_PASSWORD: 'admin'
ENCRYPTION_KEY: 'ChangeMe'
ENCRYPTION_SALT: 'ChangeMe'
volumes:
- data-volume-config:/app/config
- data-volume-thumbnails:/app/thumbnails
- data-volume-uploads:/app/uploads
- data-volume-custom-resources:/app/custom_resources
networks:
- memtly-net
hostname: memtly
restart: always
depends_on:
- mysql

volumes:
data-volume-config:
name: Memtly-Config
data-volume-thumbnails:
name: Memtly-Thumbnails
data-volume-uploads:
name: Memtly-Uploads
data-volume-custom-resources:
name: Memtly-CustomResources
data-volume-mysql:
name: Memtly-MySQL

networks:
memtly-net:
name: 'memtly-net'
external: false

Compose (SQLite)

services:
memtly:
container_name: Memtly
image: memtly/memtly:latest
ports:
- '${HTTP_PORT:-8080}:5000/tcp'
environment:
TITLE: 'Memtly'
DATABASE_TYPE: 'sqlite'
ACCOUNT_ADMIN_PASSWORD: 'admin'
ENCRYPTION_KEY: 'ChangeMe'
ENCRYPTION_SALT: 'ChangeMe'
volumes:
- data-volume-config:/app/config
- data-volume-thumbnails:/app/thumbnails
- data-volume-uploads:/app/uploads
- data-volume-custom-resources:/app/custom_resources
network_mode: bridge
hostname: memtly
restart: always

volumes:
data-volume-config:
name: Memtly-Config
data-volume-thumbnails:
name: Memtly-Thumbnails
data-volume-uploads:
name: Memtly-Uploads
data-volume-custom-resources:
name: Memtly-CustomResources

Compose (Postgres)

services:
postgres:
image: postgres:16
container_name: postgres
environment:
POSTGRES_DB: 'memtly'
POSTGRES_USER: 'memtly'
POSTGRES_PASSWORD: 'ChangeMe!'
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- data-volume-postgres:/var/lib/postgresql/data:rw
networks:
- memtly-net
hostname: 'postgres'
restart: 'always'
memtly:
container_name: Memtly
image: memtly/memtly:latest
ports:
- '${HTTP_PORT:-8080}:5000/tcp'
environment:
TITLE: 'Memtly'
DATABASE_TYPE: 'postgres'
DATABASE_CONNECTION_STRING: 'Host=postgres;Port=5432;Database=memtly;Username=memtly;Password=ChangeMe!;'
ACCOUNT_ADMIN_PASSWORD: 'admin'
ENCRYPTION_KEY: 'ChangeMe'
ENCRYPTION_SALT: 'ChangeMe'
volumes:
- data-volume-config:/app/config
- data-volume-thumbnails:/app/thumbnails
- data-volume-uploads:/app/uploads
- data-volume-custom-resources:/app/custom_resources
networks:
- memtly-net
hostname: memtly
restart: always
depends_on:
- postgres

volumes:
data-volume-config:
name: Memtly-Config
data-volume-thumbnails:
name: Memtly-Thumbnails
data-volume-uploads:
name: Memtly-Uploads
data-volume-custom-resources:
name: Memtly-CustomResources
data-volume-postgres:
name: Memtly-Postgres

networks:
memtly-net:
name: 'memtly-net'
external: false

Compose (MSSQL)

services:
mssql:
container_name: 'mssql'
image: 'mcr.microsoft.com/mssql/server:latest'
ports:
- '1433:1433/tcp'
environment:
ACCEPT_EULA: 'Y'
MSSQL_SA_PASSWORD: 'ChangeMe!23'
MSSQL_DB: 'memtly'
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- data-volume-mssql:/var/opt/mssql:rw
networks:
- memtly-net
hostname: 'mssql'
restart: 'always'
memtly:
container_name: Memtly
image: memtly/memtly:latest
ports:
- '${HTTP_PORT:-8080}:5000/tcp'
environment:
TITLE: 'Memtly'
DATABASE_TYPE: 'mssql'
DATABASE_CONNECTION_STRING: 'Server=mssql,1433;Database=memtly;User=sa;Password=ChangeMe!23;TrustServerCertificate=True;'
ACCOUNT_ADMIN_PASSWORD: 'admin'
ENCRYPTION_KEY: 'ChangeMe'
ENCRYPTION_SALT: 'ChangeMe'
volumes:
- data-volume-config:/app/config
- data-volume-thumbnails:/app/thumbnails
- data-volume-uploads:/app/uploads
- data-volume-custom-resources:/app/custom_resources
networks:
- memtly-net
hostname: memtly
restart: always
depends_on:
- mssql
volumes:
data-volume-config:
name: Memtly-Config
data-volume-thumbnails:
name: Memtly-Thumbnails
data-volume-uploads:
name: Memtly-Uploads
data-volume-custom-resources:
name: Memtly-CustomResources
data-volume-mssql:
name: Memtly-MSSQL
networks:
memtly-net:
name: 'memtly-net'
external: false