diff --git a/community-containers/overleaf/overleaf.json b/community-containers/overleaf/overleaf.json new file mode 100644 index 00000000..75f4e077 --- /dev/null +++ b/community-containers/overleaf/overleaf.json @@ -0,0 +1,101 @@ +{ + "aio_services_v1": [ + { + "container_name": "nextcloud-aio-overleaf", + "display_name": "Overleaf", + "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/overleaf", + "image": "sharelatex/sharelatex", + "image_tag": "5", + "internal_port": "8050", + "restart": "unless-stopped", + "depends_on": [ + "nextcloud-aio-overleaf-mongo", + "nextcloud-aio-overleaf-redis" + ], + "ports": [ + { + "ip_binding": "%APACHE_IP_BINDING%", + "port_number": "8050", + "protocol": "tcp" + } + ], + "environment": [ + "TZ=%TIMEZONE%", + "OVERLEAF_MONGO_URL=mongodb://nextcloud-aio-overleaf-mongo/sharelatex", + "OVERLEAF_REDIS_HOST=nextcloud-aio-overleaf-redis", + "REDIS_HOST=nextcloud-aio-overleaf-redis", + "OVERLEAF_APP_NAME='Overleaf Community Edition'", + "ENABLED_LINKED_FILE_TYPES=project_file,project_output_file", + "ENABLE_CONVERSIONS=true", + "EMAIL_CONFIRMATION_DISABLED=true", + "OVERLEAF_SITE_URL=https://overleaf.%NC_DOMAIN%", + "WEB_PORT=8050" + ], + "volumes": [ + { + "source": "nextcloud_aio_overleaf", + "destination": "/var/lib/overleaf", + "writeable": true + } + ], + "backup_volumes": [ + "nextcloud_aio_overleaf" + ], + "nextcloud_exec_commands": [ + "echo 'Installing integration_overleaf app...'", + "php /var/www/html/occ app:install integration_overleaf", + "php /var/www/html/occ app:enable integration_overleaf", + "echo 'Configuring overleaf url...'", + "php /var/www/html/occ config:app:set overleaf_server --value https://overleaf.%NC_DOMAIN%" + ] + }, + { + "container_name": "nextcloud-aio-overleaf-redis", + "display_name": "Overleaf Redis", + "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/overleaf", + "image": "redis", + "image_tag": "6.2", + "internal_port": "6379", + "restart": "unless-stopped", + "environment": [ + "TZ=%TIMEZONE%" + ], + "volumes": [ + { + "source": "nextcloud_aio_overleaf_redis", + "destination": "/data", + "writeable": true + } + ] + }, + { + "container_name": "nextcloud-aio-overleaf-mongo", + "display_name": "Overleaf MongoDB", + "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/overleaf", + "image": "mongo", + "image_tag": "6.0", + "internal_port": "27017", + "restart": "unless-stopped", + "environment": [ + "TZ=%TIMEZONE%", + "MONGO_INITDB_DATABASE=sharelatex" + ], + "command": "--replSet overleaf", + "volumes": [ + { + "source": "nextcloud_aio_overleaf_mongo", + "destination": "/data/db", + "writeable": true + }, + { + "source": "./bin/shared/mongodb-init-replica-set.js", + "destination": "/docker-entrypoint-initdb.d/mongodb-init-replica-set.js", + "writeable": false + } + ], + "backup_volumes": [ + "nextcloud_aio_overleaf_mongo" + ] + } + ] +} diff --git a/community-containers/overleaf/readme.md b/community-containers/overleaf/readme.md new file mode 100644 index 00000000..44b27178 --- /dev/null +++ b/community-containers/overleaf/readme.md @@ -0,0 +1,16 @@ +## Overleaf (Community Edition) +This community container deploys Overleaf CE with its required MongoDB and Redis services. + +### Notes +- After adding and starting the container, you can directly visit http://ip.address.of.server:8050/ to access your new Overleaf instance. +- To access Overleaf outside your local network with HTTPS, set up a reverse proxy in front of AIO. You can either follow the generic reverse proxy guide: https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md or use the community Caddy container which can be adjusted to forward a subdomain like `overleaf.$NC_DOMAIN` to port 8050 on this server. +- Initial user/admin creation is handled inside Overleaf. This container does not integrate Overleaf authentication with Nextcloud users. +- If you run a firewall (e.g., ufw), ensure port 8050 is allowed or that your reverse proxy can reach it locally. +- The data directories for Overleaf and MongoDB are persisted and included in AIO backups automatically. +- See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers for how to add it to the AIO stack. + +### Repository +https://github.com/overleaf/overleaf + +### Maintainer +https://github.com/docjyj