NixOS Support

オープン
#429 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
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

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

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

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nextcloud/nextcloud-docker-dev のほかの issue

nextcloud/nextcloud-docker-dev の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。