version: "2.1" services: bitwarden: image: vaultwarden/server:latest container_name: bitwarden_rs security_opt: - no-new-privileges=true env_file: - .env environment: - PUID=1000 - PGID=1000 - TZ=America/Los_Angeles volumes: - bitwarden:/web-vault - bitwarden_data:/data networks: - docker-network depends_on: - mariadb restart: unless-stopped collabora: image: collabora/code:latest container_name: collabora hostname: collabora cap_add: - MKNOD env_file: - .env environment: - PUID=1001 - PGID=1002 - TZ=America/Los_Angeles - username=${COLLABORA_USERNAME} - password=${COLLABORA_PASSWORD} - domain='nextcloud\.thelyoncompany\.com'|'collabora\.thelyoncompany\.com' - extra_params='--o:ssl.enable=false --o:ssl.termination=true' volumes: - collabora:/etc/loolwsd - collabora_data:/opt/lool - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - docker-network depends_on: - swag restart: unless-stopped nextcloud: image: linuxserver/nextcloud:latest container_name: nextcloud hostname: nextcloud environment: - PUID=1000 - PGID=1000 - TZ=America/Los_Angeles volumes: - nextcloud:/config - nextcloud_data:/data networks: - docker-network depends_on: - mariadb healthcheck: test: ["CMD-SHELL", "curl -f http://nextcloud:80 || exit 1"] interval: 1m30s timeout: 10s retries: 3 restart: unless-stopped mariadb: image: linuxserver/mariadb:latest container_name: mariadb env_file: - .env environment: - PUID=1000 - PGID=1000 - TZ=America/Los_Angeles - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} - MYSQL_USER=${MYSQL_USER} - MYSQL_PASSWORD=${MYSQL_PASSWORD} volumes: - mariadb:/config networks: - docker-network restart: unless-stopped swag: image: linuxserver/swag:latest container_name: swag cap_add: - NET_ADMIN environment: - PUID=1000 - PGID=1000 - TZ=America/Los_Angeles - URL=thelyoncompany.com - EMAIL=edwin@thelyoncompany.com - SUBDOMAINS=bitwarden,collabora,nextcloud - ONLY_SUBDOMAINS=true - EXTRA_DOMAINS=nextcloud.thelyoncompany.com,collabora.thelyoncompany.com,bitwarden.thelyoncompany.com - VALIDATION=dns - DNSPLUGIN=cloudflare volumes: - nginx:/config ports: - 80:80 - 443:443 networks: - docker-network depends_on: - mariadb restart: unless-stopped volumes: nginx: external: true mariadb: external: true nextcloud: external: true nextcloud_data: external: true bitwarden: external: true bitwarden_data: external: true collabora: external: true collabora_data: external: true networks: docker-network: external: true