version: '2' volumes: vol_wiki: vol_nextcloud: vol_nextcloud_db: vol_gitlab_config: vol_gitlab_logs: vol_gitlab_data: vol_letsencrypt: vol_letsencrypt_html: services: # --------------------------------------------------------------------------- # Static website served at wojciechkozlowski.eu # --------------------------------------------------------------------------- html: container_name: docker_html build: html image: html restart: always # --------------------------------------------------------------------------- # DokuWiki installation available at wiki.wojciechkozlowski.eu # --------------------------------------------------------------------------- wiki: container_name: docker_wiki build: dokuwiki image: wiki volumes: - vol_wiki:/var/dokuwiki-storage restart: always # --------------------------------------------------------------------------- # NextCloud installation available at cloud.wojciechkozlowski.eu # --------------------------------------------------------------------------- nextcloud-db: container_name: nextcloud_db image: mariadb volumes: - vol_nextcloud_db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=nextcloud - MYSQL_PASSWORD=nextcloud - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud restart: always nextcloud-app: container_name: nextcloud_app image: nextcloud:fpm links: - nextcloud-db volumes: - vol_nextcloud:/var/www/html restart: always nextcloud-cron: container_name: nextcloud_cron build: nextcloud/cron image: nextcloud-cron volumes_from: - nextcloud-app restart: always nextcloud: container_name: docker_cloud image: nginx links: - nextcloud-app volumes: - ./nextcloud/nginx.conf:/etc/nginx/nginx.conf:ro volumes_from: - nextcloud-app restart: always # --------------------------------------------------------------------------- # GitLab installation available at gitlab.wojciechkozlowski.eu # --------------------------------------------------------------------------- gitlab: container_name: docker_gitlab build: gitlab image: gitlab environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.wojciechkozlowski.eu' # Add any other gitlab.rb configuration here, each on its own line ports: - '2770:22' volumes: - vol_gitlab_config:/etc/gitlab - vol_gitlab_logs:/var/log/gitlab - vol_gitlab_data:/var/opt/gitlab restart: always # --------------------------------------------------------------------------- # Reverse proxy served by Nginx # --------------------------------------------------------------------------- proxy: container_name: proxy image: nginx ports: - 80:80 - 443:443 links: - html - wiki - nextcloud - gitlab volumes: - ./proxy/nginx.conf:/etc/nginx/nginx.conf:ro - ./proxy/nginx-conf.d:/etc/nginx/conf.d:ro - vol_letsencrypt:/etc/letsencrypt - vol_letsencrypt_html:/var/www/html restart: always # --------------------------------------------------------------------------- # Certbot container running a cron job to renew certificates. # --------------------------------------------------------------------------- certbot: container_name: certbot build: certbot image: certbot volumes: - vol_letsencrypt:/etc/letsencrypt - vol_letsencrypt_html:/var/www/html restart: always