-
Notifications
You must be signed in to change notification settings - Fork 99
Description
Preface
Following on helpful comments from @weeman1337 on #213, and trial and error I was able to reach to the point where the dev environment is ready be used. While this is still not completed, I'm using it as reference for me as well for other users. I'm hoping to standardize NixOS support for nextcloud-docker-dev at some point.
Pre-requisite
- Base all shebangs in the
bootstrap.shand other scripts to/usr/bin/env bash.- This change can be found here ae069f1 (Part of feat: podman-compose, nixos support #428)
- Update
hostsconfiguration (https://wiki.nixos.org/wiki/Networking#Hosts_file) with allaliasesdefined indocker-compose.yml
Compiled list
127.0.0.1 nextcloud.local
::1 nextcloud.local
127.0.0.1 nextcloud2.local
::1 nextcloud2.local
127.0.0.1 nextcloud3.local
::1 nextcloud3.local
127.0.0.1 stable16.local
::1 stable16.local
127.0.0.1 stable17.local
::1 stable17.local
127.0.0.1 stable18.local
::1 stable18.local
127.0.0.1 stable19.local
::1 stable19.local
127.0.0.1 stable20.local
::1 stable20.local
127.0.0.1 stable21.local
::1 stable21.local
127.0.0.1 stable22.local
::1 stable22.local
127.0.0.1 stable23.local
::1 stable23.local
127.0.0.1 stable24.local
::1 stable24.local
127.0.0.1 stable25.local
::1 stable25.local
127.0.0.1 stable26.local
::1 stable26.local
127.0.0.1 stable27.local
::1 stable27.local
127.0.0.1 stable28.local
::1 stable28.local
127.0.0.1 stable29.local
::1 stable29.local
127.0.0.1 stable30.local
::1 stable30.local
127.0.0.1 stable31.local
::1 stable31.local
127.0.0.1 stable32.local
::1 stable32.local
127.0.0.1 mail.local
::1 mail.local
127.0.0.1 sso.local
::1 sso.local
127.0.0.1 imap.local
::1 imap.local
127.0.0.1 collabora.local
::1 collabora.local
127.0.0.1 codedev.local
::1 codedev.local
127.0.0.1 onlyoffice.local
::1 onlyoffice.local
127.0.0.1 proxy.local
::1 proxy.local
127.0.0.1 hpb.local
::1 hpb.local
127.0.0.1 push.local
::1 push.local
127.0.0.1 keycloak.local
::1 keycloak.local
127.0.0.1 portal.local
::1 portal.local
127.0.0.1 gs1.local
::1 gs1.local
127.0.0.1 gs2.local
::1 gs2.local
127.0.0.1 lookup.local
::1 lookup.local
127.0.0.1 elasticsearch.local
::1 elasticsearch.local
127.0.0.1 elasticsearch-ui.local
::1 elasticsearch-ui.local
127.0.0.1 pgadmin.local
::1 pgadmin.local
127.0.0.1 phpmyadmin.local
::1 phpmyadmin.local
127.0.0.1 talk-signaling.local
::1 talk-signaling.local
127.0.0.1 talk-recording.local
::1 talk-recording.local
- Podman users: enable Docker compatibility and Docker socket
Steps
As of now, all requirements seem to be in place, and use can now run ./bootstrap.sh, which will have following output:
⏩ Performing system checks
✅ docker is properly installed
✅ git is properly installed
✅ Docker is properly executable
⏩ Setup your environment in an .env file
✅ nextcloud.local (127.0.0.1) already exists
✅ nextcloud.local (::1) already exists
✅ nextcloud2.local (127.0.0.1) already exists
✅ nextcloud2.local (::1) already exists
✅ nextcloud3.local (127.0.0.1) already exists
✅ nextcloud3.local (::1) already exists
✅ stable16.local (127.0.0.1) already exists
✅ stable16.local (::1) already exists
✅ stable17.local (127.0.0.1) already exists
✅ stable17.local (::1) already exists
✅ stable18.local (127.0.0.1) already exists
✅ stable18.local (::1) already exists
✅ stable19.local (127.0.0.1) already exists
✅ stable19.local (::1) already exists
✅ stable20.local (127.0.0.1) already exists
✅ stable20.local (::1) already exists
✅ stable21.local (127.0.0.1) already exists
✅ stable21.local (::1) already exists
✅ stable22.local (127.0.0.1) already exists
✅ stable22.local (::1) already exists
✅ stable23.local (127.0.0.1) already exists
✅ stable23.local (::1) already exists
✅ stable24.local (127.0.0.1) already exists
✅ stable24.local (::1) already exists
✅ stable25.local (127.0.0.1) already exists
✅ stable25.local (::1) already exists
✅ stable26.local (127.0.0.1) already exists
✅ stable26.local (::1) already exists
✅ stable27.local (127.0.0.1) already exists
✅ stable27.local (::1) already exists
✅ stable28.local (127.0.0.1) already exists
✅ stable28.local (::1) already exists
✅ stable29.local (127.0.0.1) already exists
✅ stable29.local (::1) already exists
✅ stable30.local (127.0.0.1) already exists
✅ stable30.local (::1) already exists
✅ stable31.local (127.0.0.1) already exists
✅ stable31.local (::1) already exists
✅ stable32.local (127.0.0.1) already exists
✅ stable32.local (::1) already exists
✅ mail.local (127.0.0.1) already exists
✅ mail.local (::1) already exists
✅ sso.local (127.0.0.1) already exists
✅ sso.local (::1) already exists
✅ imap.local (127.0.0.1) already exists
✅ imap.local (::1) already exists
✅ collabora.local (127.0.0.1) already exists
✅ collabora.local (::1) already exists
✅ codedev.local (127.0.0.1) already exists
✅ codedev.local (::1) already exists
✅ onlyoffice.local (127.0.0.1) already exists
✅ onlyoffice.local (::1) already exists
✅ proxy.local (127.0.0.1) already exists
✅ proxy.local (::1) already exists
✅ hpb.local (127.0.0.1) already exists
✅ hpb.local (::1) already exists
✅ push.local (127.0.0.1) already exists
✅ push.local (::1) already exists
✅ keycloak.local (127.0.0.1) already exists
✅ keycloak.local (::1) already exists
✅ portal.local (127.0.0.1) already exists
✅ portal.local (::1) already exists
✅ gs1.local (127.0.0.1) already exists
✅ gs1.local (::1) already exists
✅ gs2.local (127.0.0.1) already exists
✅ gs2.local (::1) already exists
✅ lookup.local (127.0.0.1) already exists
✅ lookup.local (::1) already exists
✅ elasticsearch.local (127.0.0.1) already exists
✅ elasticsearch.local (::1) already exists
✅ elasticsearch-ui.local (127.0.0.1) already exists
✅ elasticsearch-ui.local (::1) already exists
✅ pgadmin.local (127.0.0.1) already exists
✅ pgadmin.local (::1) already exists
✅ phpmyadmin.local (127.0.0.1) already exists
✅ phpmyadmin.local (::1) already exists
✅ talk-signaling.local (127.0.0.1) already exists
✅ talk-signaling.local (::1) already exists
✅ talk-recording.local (127.0.0.1) already exists
✅ talk-recording.local (::1) already exists
⏩ Setting up folder structure and fetching repositories
🌏 Fetching server (this might take a while to finish)
Cloning into 'workspace/server'...
remote: Enumerating objects: 12858, done.
remote: Counting objects: 100% (12858/12858), done.
remote: Compressing objects: 100% (9778/9778), done.
remote: Total 12858 (delta 3270), reused 5536 (delta 2597), pack-reused 0 (from 0)
Receiving objects: 100% (12858/12858), 95.09 MiB | 3.31 MiB/s, done.
Resolving deltas: 100% (3270/3270), done.
Updating files: 100% (11555/11555), done.
Submodule '3rdparty' (https://github.com/nextcloud/3rdparty.git) registered for path '3rdparty'
Cloning into 'nextcloud-docker-dev/workspace/server/3rdparty'...
remote: Enumerating objects: 60497, done.
remote: Counting objects: 100% (540/540), done.
remote: Compressing objects: 100% (160/160), done.
remote: Total 60497 (delta 498), reused 391 (delta 378), pack-reused 59957 (from 3)
Receiving objects: 100% (60497/60497), 77.19 MiB | 3.47 MiB/s, done.
Resolving deltas: 100% (34079/34079), done.
Submodule path '3rdparty': checked out '069a6106ccc99fd8a5ac1836085deeeee9447b7d'
🌏 Fetching viewer
> Cloning into 'workspace/server/apps-extra/viewer'...
✅ viewer installed
🌏 Fetching recommendations
> Cloning into 'workspace/server/apps-extra/recommendations'...
✅ recommendations installed
🌏 Fetching files_pdfviewer
> Cloning into 'workspace/server/apps-extra/files_pdfviewer'...
✅ files_pdfviewer installed
🌏 Fetching profiler
> Cloning into 'workspace/server/apps-extra/profiler'...
✅ profiler installed
🌏 Fetching hmr_enabler
> Cloning into 'workspace/server/apps-extra/hmr_enabler'...
✅ hmr_enabler installed
🌏 Fetching circles
> Cloning into 'workspace/server/apps-extra/circles'...
✅ circles installed
╔═════════════════════════════════════════╗
║ oOo Ready to start developing 🎉 ║
╚═════════════════════════════════════════╝
🚀 Start the Nextcloud server by running
$ docker compose up -d nextcloud
💤 Stop it with
$ docker compose stop nextcloud
🗑 Fresh install and wipe all data
$ docker compose down -v
Note that for performance reasons the server repository has been cloned with
--depth=1. To get the full history it is highly recommended to run:
$ cd workspace/server
$ git fetch --unshallow
$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
$ git fetch origin
This may take some time depending on your internet connection speed.
You might as well use the script in scripts/download-full-history.sh.
For more details about the individual setup options see
the README.md file or checkout the repo at
https://github.com/juliusknorr/nextcloud-docker-dev
Next Steps
I'm yet to test the complete setup and start an app development, which was the reason for me to come over this. I'll update the PR and this issue as I find new challenges, until I complete the process, where I would like to contribute the results as:
- Changes to the project
- Documenting the process