NixOS Support
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- bash, docker-compose, nixos
調査の方向性
bootstrap.sh、docker-compose.yml、README.mdから始め、記載されているホストとPodmanの前提条件を確認しながら、NixOS上で./bootstrap.shを実行します。必要に応じてscripts/download-full-history.shを確認します。NixOS上で完全な開発環境が動作し、プロセスと必要なプロジェクトの変更が文書化されていれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- PHP
- スター
- 190
- フォーク
- 103
- 平均マージ
- 4時間 36分
- マージ済み PR(30日)
- 1
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
nextcloud/nextcloud-docker-dev のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
nextcloud/nextcloud-docker-dev#483 · コメント 1 件 · リアクション 3 件 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
nextcloud/nextcloud-docker-dev#480 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
nextcloud/nextcloud-docker-dev の issue をすべて見る
似ている issue
-
sync-en
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
-
sync-en
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
-
Перевод устарел
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
-
status/awaiting_triage
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
-
Issue: ready for confirmation Reported on 2.4.x
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100