Skip to content

One File Docker Compose (One File to Rule them all!) ​

This is the Docker Compose file used for the VM Template, and can be used as a custom template in Portainer. The custom network listed under "Networks" is used for all the applications that you want to connect through the stack. Please replace the ALL_CAPS_PORTIONS and the pieces in square brackets. These are values that you will want to set yourself.

TIP

For things like passwords and such, I'd recommend a 26 character random string, using alphanumeric characters in both upper and lower case. These values are crucial that they remain both secret and lengthy.

These values are crucial that they remain both secret and lengthy. You should not need to change these, and some of them will break the application if you try to change them. I'd recommend that you backup your compose file to the cloud in case you need to redo the setup.

yml
version: "2.1"
services:
  swag:
    image: lscr.io/linuxserver/swag:latest
    container_name: swag
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Phoenix
      - URL=[sakura.nt]
      - VALIDATION=dns
      - SUBDOMAINS=wildcard
      - DNSPLUGIN=cloudflare
      - EMAIL=[sakurant@gmail.com]
      - ONLY_SUBDOMAINS=false
      #- EXTRA_DOMAINS= #optional
      - STAGING=false
      - DOCKER_MODS=linuxserver/mods:universal-docker|linuxserver/mods:swag-auto-reload|linuxserver/mods:swag-dashboard|linuxserver/mods:swag-dbip
    volumes:
      - /home/[INSERT USER FOLDER HERE]/appdata/swag:/config
    ports:
      - 443:443
      - 80:80
    networks:
      - [INSERT NETWORK NAME HERE]
    restart: unless-stopped

  authelia:
    container_name: authelia
    image: authelia/authelia:latest
    expose:
      - 9091
    volumes:
      - /home/[INSERT USER FOLDER HERE]/appdata/authelia:/config
    networks:
      - [INSERT NETWORK NAME HERE]
    restart: unless-stopped
    depends_on:
      - redis
      - mariadb

  lldap:
    container_name: lldap
    image: lldap/lldap:stable
    ports:
      # For LDAP
      - "3890:3890"
      # For the web front-end
      - "17170:17170"
    volumes:
      - /home/[INSERT USER FOLDER HERE]/appdata/lldap:/data
    networks:
      - [INSERT NETWORK NAME HERE]
    environment:
      - TZ=America/Phoenix
      - LLDAP_JWT_SECRET=REPLACE_WITH_RANDOM
      - LLDAP_LDAP_USER_PASS=REPLACE_WITH_PASSWORD
      - LLDAP_LDAP_BASE_DN=dc=sakura,dc=nt

  redis:
    container_name: redis
    image: bitnami/redis:latest
    expose:
      - 6379
    volumes:
      - /home/[INSERT USER FOLDER HERE]/appdata/redis:/bitnami/
    environment:
      REDIS_PASSWORD: "YOUR_REDIS_PASSWORD"
    networks:
      - [INSERT NETWORK NAME HERE]
    restart: unless-stopped

  mariadb:
    container_name: mysql
    image: linuxserver/mariadb:latest
    expose:
      - 3306
    volumes:
      - /home/[INSERT USER FOLDER HERE]/appdata/mariadb:/config
    environment:
      MYSQL_ROOT_PASSWORD: "YOUR_MYSQL_ROOT_PASSWORD"
      MYSQL_ROOT_USER: root
      MYSQL_DATABASE: authelia
      MYSQL_USER: authelia
      MYSQL_PASSWORD: "YOUR_MYSQL_USER_PASSWORD"
    networks:
      - [INSERT NETWORK NAME HERE]
    restart: unless-stopped

networks:
  [INSERT NETWORK NAME HERE]:
    driver: bridge
    external: true

Docs created by @ldez