docker-nextcloud-dev
docker-nextcloud-dev copied to clipboard
A nextcloud development stack
This is a nextcloud development environment stack for dockerπ
This is a php docker designed to be used with the compose file present in this repository. This is not designed to be a quick dev setup on the fly, but rather a semi-permanent setup. π» Built-in: phpunit, ldap, gd, imagick, APCu, redis, memcached...
We basically use the same nginx config than the documentation: https://docs.nextcloud.com/server/stable/admin_manual/installation/nginx.html Only the php-handler server is changed to the php container
How-to π€
- Download this repository and rename it the way you want
- Into the docker folder, clone nextcloud server
git clone [email protected]:nextcloud/server.git - Into the
serverfolder, update the 3rdparty submodule:git submodule update --initcd server git submodule update --init cd .. - Execute the stack:
docker-compose up -d - Access the nextcloud through https://localhost
- Go to the setup of your nextcloud, enter your desired username and your password
- Enjoy contributing! π₯ π
Using https π
- We now generate self signed certificates on start.
- Before starting it, you can edit the domain in the
docker-compose.ymlfile, check for the omgwtfssl service. - Currently the config is made to redirect all http traffic to https.
- You will see an error at first because the ssl certificates are not approved by a trust entity, this is all safe, you just generated them. Approve them manually on your browser and start using your dev stack :wink:
Retrieve a container's IP π
$ docker-compose exec web hostname -i
172.20.0.3
Install apps πΎ
- If you want to install apps, you can directly go into your apps management
- but if you want to work on apps development, just clone their git repository into the apps2 folder (on the root, not on the server folder)
Change the database config π
We use mariadb by default. If you don't want it, you can:
- Remove the db and phpmyadmin (if present) service form the compose file
- Remove the
MYSQLenvironment params of the php service in the compose file - Go to the setup of your nextcloud and choose the desired database
OCC commands β¨
You can run any occ command with docker (example: upgrade)
$ docker-compose exec --user=docker php php occ upgrade
Phpunit β
You can run the test you want with phpunit bootstrap
$ docker-compose exec --user=docker php phpunit --bootstrap tests/bootstrap.php tests/Core/Controller/ClientFlowLoginControllerTest.php
Or the full suite:
$ docker-compose exec php phpunit --configuration tests/phpunit-autotest.xml
Access and manage the database π
If you used the default setup with mariadb, you can enable phpmyadmin directly.
- Uncomment the phpmyadmin service in your
docker-composefile - Run the service:
docker-compose start phpmyadmin - Retrieve phpmyadmin's IP:
docker-compose exec phpmyadmin hostname -i(example: 172.20.0.4) - Open your browser and access the ip directly (e.g. http://172.20.0.4/)
- Use your database root user (default user
root, pass:rootpassword) The database default name is nextcloud
Quick smtp
Want a quick smtp server to test emails on nextcloud ?
- On your compose file, uncomment the smtp service and the smtp volume binding on the php service.
- Edit your
smtp.config.phpfile and change the domain by your domain (make sure you've set your email in your nextcloud user account) - Go on the nextcloud smtp settings and click the
Send test emailbutton! - You've got mail! π«
Troubleshooting
- The files of the app (viewer) were not replaced correctly. Solution: execute
git clone https://github.com/nextcloud/viewer.gitin the apps2 directory