nextcloud for podman, based on https://github.com/nextcloud/docker
Note
If you encounter any issues relating to this installation method, please raise an issue on this repository rather than bothering the official Nextcloud team.
- Either clone or manually write the quadlet files to
/etc/containers/systemd/nextcloud:
For rootless Podman setups, clone the repository to
~/.config/containers/systemd/nextcloudinstead.
git clone https://github.com/linux-universe/nextcloud-podman-quadlets.git /etc/containers/systemd/nextcloud-
Make sure to pass in values for
MYSQL_ROOT_PASSWORDandMYSQL_PASSWORDvariables before you run this setup -
Reload systemd:
systemctl daemon-reload
-
Then start the nextcloud pod:
systemctl start nextcloud-pod
Run steps 3 and 4 with the
--userargument for rootless setups.
$ podman exec -it --user www-data systemd-nextcloud php occIt is highly recommended that you run this setup with a reverse proxy. To use it, uncomment the reverse proxy-related lines in nextcloud.container.
Make sure you configure the necessary redirects for service discovery: https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/reverse_proxy_configuration.html#service-discovery.
It is also recommended that you configure HSTS. Please check the documentation for your reverse proxy for further information.
caddy example:
https://example.xyz:443 {
# HSTS
header {
Strict-Transport-Security max-age=31536000;
}
# redirects
redir /.well-known/carddav /remote.php/dav/ 301
redir /.well-known/caldav /remote.php/dav/ 301
# reverse proxy
reverse_proxy localhost:8080
}- Create a new file named
euro-office.container
[Container]
#AutoUpdate=registry
Image=ghcr.io/euro-office/documentserver:latest
Environment=JWT_SECRET=<provide-a-secret-here>
PublishPort=8081:80
[Service]
TimeoutStartSec=900
[Install]
WantedBy=default.target
-
Start with
systemctl daemon-reload && systemctl restart euro-office -
Don't forget to configure your reverse-proxy with it Caddy example:
https://office.example.xyz:443 {
reverse_proxy localhost:8081
}- Install and configure the Euro-Office Nextcloud integration with your secret and reverse-proxied URL.
Follow the steps in the guide at https://nextcloud-talk.readthedocs.io/en/latest/quick-install/#installation-steps. For Step 2, however, follow these instructions instead:
-
Uncomment the additional exposed ports in
nextcloud.pod -
Create a new file named
nextcloud-talk-hpb.container:
[Container]
AutoUpdate=registry
Pod=nextcloud.pod
Image=ghcr.io/nextcloud-releases/aio-talk:latest
Environment=NC_DOMAIN=<your_domain>
Environment=TALK_HOST=<your_signaling_domain>
Environment=TALK_PORT=3478
Environment=TURN_SECRET=<your_turn_secret>
Environment=SIGNALING_SECRET=<your_signaling_secret>
Environment=INTERNAL_SECRET=<your_internal_secret>
[Service]
TimeoutStartSec=900
- Restart your Pod with
systemctl daemon-reload && systemctl restart nextcloud-pod