NixOS Support
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- bash, docker-compose, nixos
- Área
- developer-experience, devops
Línea de trabajo
Empieza por bootstrap.sh, docker-compose.yml y README.md; después, ejecuta ./bootstrap.sh en NixOS mientras compruebas los prerrequisitos indicados del host y de Podman. Revisa scripts/download-full-history.sh si es necesario. Se considera terminado cuando la configuración completa de desarrollo funciona en NixOS y el proceso y los cambios necesarios en el proyecto están documentados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Preface
Following on helpful comments from @weeman1337 on https://github.com/juliusknorr/nextcloud-docker-dev/issues/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. - 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
- Lenguaje dominante
- PHP
- Estrellas
- 192
- Forks
- 103
- Merge medio
- 33 min
- PR fusionados (30 d)
- 1
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de nextcloud/nextcloud-docker-dev
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
nextcloud/nextcloud-docker-dev#483 · 1 comentario · 3 reacciones ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
nextcloud/nextcloud-docker-dev#480 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Setup does not work with SelinuxAbiertobug
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
Todos los issues de nextcloud/nextcloud-docker-dev
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
awslabs/aidlc-workflows#1879 ·
Los mantenedores suelen responder en 1 día
-
[Bug] The PHP file that lists DNS records truncates records to 12 characters?Posiblemente ocupada @sahsanu la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
hestiacp/hestiacp#5769 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
bug customer-reported
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
MagnaCapax/PMSS#1011 ·
Los mantenedores suelen responder en 5 días
-
Talk Review
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
socallinuxexpo/scale-drupal#351 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
code4romania/cpc#47 ·
Los mantenedores suelen responder en 1 día