Config Nginx
add nginx configuration as below
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
listen [::]:80; # comment to disable IPv6
if ($scheme = "http") {
return 301 https://$host$request_uri;
}
listen 443 ssl http2; # for nginx versions below v1.25.1
listen [::]:443 ssl http2; # for nginx versions below v1.25.1 - comment to disable IPv6
# listen 443 ssl; # for nginx v1.25.1+
# listen [::]:443 ssl; # for nginx v1.25.1+ - keep comment to disable IPv6
# http2 on; # uncomment to enable HTTP/2 - supported on nginx v1.25.1+
# http3 on; # uncomment to enable HTTP/3 / QUIC - supported on nginx v1.25.0+
# quic_retry on; # uncomment to enable HTTP/3 / QUIC - supported on nginx v1.25.0+
# add_header Alt-Svc 'h3=":443"; ma=86400'; # uncomment to enable HTTP/3 / QUIC - supported on nginx v1.25.0+
# listen 443 quic reuseport; # uncomment to enable HTTP/3 / QUIC - supported on nginx v1.25.0+ - please remove "reuseport" if there is already another quic listener on port 443 with enabled reuseport
# listen [::]:443 quic reuseport; # uncomment to enable HTTP/3 / QUIC - supported on nginx v1.25.0+ - please remove "reuseport" if there is already another quic listener on port 443 with enabled reuseport - keep comment to disable IPv6
server_name cloud.beekc.top;
location / {
proxy_pass http://192.168.50.20:8200$request_uri;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Accept-Encoding "";
proxy_set_header Host $host;
client_body_buffer_size 512k;
proxy_read_timeout 86400s;
client_max_body_size 0;
# Websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
ssl_certificate /etc/letsencrypt/live/beekc.top/fullchain.pem; # managed by certbot on host machine
ssl_certificate_key /etc/letsencrypt/live/beekc.top/privkey.pem; # managed by certbot on host machine
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers on;
# Optional settings:
# OCSP stapling
# ssl_stapling on;
# ssl_stapling_verify on;
# ssl_trusted_certificate /etc/letsencrypt/live/<your-nc-domain>/chain.pem;
# replace with the IP address of your resolver
# resolver 127.0.0.1; # needed for oscp stapling: e.g. use 94.140.15.15 for adguard / 1.1.1.1 for cloudflared or 8.8.8.8 for google - you can use the same nameserver as listed in your /etc/resolv.conf file
}
nginx -v
can be used to check nginx version, then adjust the configuration with version notes.
Change cloud.beekc.top
to your domain
, change 192.168.50.20
to your server-ip
, change 8200
to the port you want to use for Nextcloud.
Startup Nextcloud AIO
sudo docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--add-host=host.docker.internal:host-gateway \
--publish 8201:8080 \
--env APACHE_PORT=8200 \
--env APACHE_IP_BINDING=0.0.0.0 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest
In this example, config port 8200 for Nextcloud and 8201 for AIO pannel.
Integrate Onlyoffice
After install Onlyoffice App in Nextcloud, ONLYOFFICE Docs address and Key is needed. The Key is configured as JWT, genereted randomly. To obtain the secret, run this command:
sudo docker exec 5fd7c1443705 /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'
you may getting Error while downloading the document file to be converted
at this time. Then, in Nextcloud’s config.php
add this:
'onlyoffice' =>
array (
"jwt_secret" => "yourSecret",
"jwt_header" => "AuthorizationJwt"
)
Export Nextcloud Talk Chat History
$ mysql -u $DB_USER -p -h $HOST -D $DB -e 'SELECT * FROM oc_comments;' > ~/chat_`date +%d.%Y`.log
Get Mastercontainer Password
sudo cat /var/lib/docker/volumes/nextcloud_aio_mastercontainer/_data/data/configuration.json | grep password
It is the value of password
.
Warning & Error
Used memory grew by more than 10 MB when executing job …
Copy cron.php from container to local
docker cp nextcloud-aio-nextcloud:/var/www/html/cron.php cron.php
Search memoryAfter
and find if ($memoryAfter - $memoryBefore > 10_000_000)
. Replace it to if ($memoryAfter - $memoryBefore > 30_000_000)
.
Copy the new file into container
docker cp cron.php nextcloud-aio-nextcloud:/var/www/html/cron.php