Configuring my private Nextcloud running on Ubuntu
Once Nextcloud is running, the temptation is to start uploading files and call it a day. I did that… and then quickly realised the admin…
Configuring my private Nextcloud running on Ubuntu
Once Nextcloud is running, the temptation is to start uploading files and call it a day. I did that… and then quickly realised the admin panel is where you turn “a working install” into something you can trust long-term.
This mini-article is basically my runbook: the settings I always review, the apps I actually use (as a D&A person), and the maintenance routine that keeps the server boring.

1) First stop: Admin panel basics (settings that matter)
Open Nextcloud and go to:
Profile icon (top-right) → Administration settings

A) Background jobs: set to Cron (not AJAX)
You already have a cron container; this setting tells Nextcloud to use it.
- Administration settings → Basic settings → Background jobs → Cron
Why it matters: lots of Nextcloud features rely on background jobs (cleanup, previews, notifications). AJAX is “ok for testing”, cron is what you want for a real server.

Quick verify (CLI):
docker exec -u www-data nextcloud php occ config:app:get core backgroundjobs_mode
B) Default phone region & time zone
- Administration settings → Basic settings
- Default phone region: set your region (helps with contacts)
- Email server: configure if you want password resets, share notifications, etc.
Even if you don’t run email immediately, setting the basics avoids confusion later.
C) Security hardening: 2FA + bruteforce protection
- Apps → Security
- Enable Two-Factor TOTP Provider Then:
- Personal settings → Security
- Turn on TOTP for your admin user

You can keep the service tailnet-only and still benefit from 2FA — it protects you from mistakes (like leaving a session open on a shared device).
D) Logging (set it so debugging is easy)
- Administration settings → Logging Set log level to something sensible (usually “Warning” or “Info” depending on your appetite). If you’re troubleshooting, bump it temporarily and revert.
The underlying log file on this setup typically ends up in:
/srv/nextcloud-data/ncdata/nextcloud.log
E) Overview warnings: treat them as a to-do list
- Administration settings → Overview This screen will surface things like:
- missing DB indices
- background jobs not running
- caching not configured
- HTTPS warnings (expected in a Tailscale-only HTTP setup)
I periodically scan it after upgrades.
2) Apps/extensions I actually add (and why)
Nextcloud can become a “platform” quickly, so I keep it practical. As a D&A person, I’m biased toward tools that support workflows, documentation, and intake.
My “high ROI” app set
You’ll find apps via: Apps → (search & enable)
- Collectives My internal wiki/runbook. Perfect for documenting your homelab: storage layout, restore steps, update cadence, “what to do when X breaks”.
- Deck Lightweight Kanban for infra tasks, content pipeline, or side-project planning.
- Forms Useful for intake: “upload docs”, “data request”, “client onboarding checklist”. Responses can be stored and integrated with automation.
- Tables Simple structured lists: dataset registry, credential inventory, backlog items, project metadata.
- Notes Fast scratchpad that syncs everywhere.
- Calendar + Tasks I use it for recurring maintenance reminders and “maintenance windows” planning.
Optional “power apps” (only if you need them)
- OnlyOffice or Collabora Online Great if you want in-browser document editing, but it adds complexity (another container and config). I treat it as a phase 2.
3) Recommended admin configuration after installing those apps
A) Create users and groups (don’t live as admin)
- Create a normal user for daily use
- Keep admin for admin tasks only
- Use groups if you plan to share certain folders across devices/users
B) Set up a “Landing Zone” folder strategy
I like having:
/Inbox(quick uploads from phone)/Projects(active work)/Archive(long-term, but careful with large preview generation)
This aligns nicely with automation: /Inbox can trigger n8n workflows.
C) Previews/thumbnails
Preview generation can be heavy. If your server is modest, keep preview settings conservative. The overview panel will guide you. (You can optimise later once usage patterns are clear.)
4) How to update Nextcloud safely (without surprises)
Because we’re using Docker, updates are straightforward — but do them intentionally.
A) The safe update routine
- Backup
- Pull images
- Restart stack
- Watch logs
- Check the admin overview
Commands:
cd /srv/nextcloud
# 1) optional quick "pre-check"
sudo docker compose ps
# 2) pull latest images
sudo docker compose pull
# 3) restart with new images
sudo docker compose up -d
# 4) check logs quickly
sudo docker compose logs --tail=100 app
sudo docker compose logs --tail=100 db
If Nextcloud warns about DB migrations, run:
docker exec -u www-data nextcloud php occ upgrade
Then re-check:
curl -sS http://127.0.0.1:8092/status.php
B) Frequency
- Monthly is a good rhythm for a homelab
- If you’re using it for anything business critical, shorten it to every 2–3 weeks
5) Maintenance: what I actually do and what I automate
A) Daily backups (automate)
If you do nothing else, automate backups.
At minimum:
- DB dump
- Nextcloud config (your compose + config folder)
- Data directory
Because your data is on /srv/nextcloud-data, backing up is conceptually simple.
Example structure:
/srv/nextcloud/→ stack config/srv/nextcloud-data/→ all service state (ncdata/pgdata/redis)
I schedule backups nightly and send a Telegram alert on failure (n8n is perfect here).
B) Weekly sanity checks (automate)
- Disk usage:
df -h / /srv/hdd /srv/nextcloud-data
- Docker disk usage:
docker system df
- Recent Nextcloud errors:
sudo tail -n 100 /srv/nextcloud-data/ncdata/nextcloud.log
C) Quarterly filesystem check (because ext4 is inside a file)
This is the one “special” maintenance step for the ext4-in-a-file approach. It’s planned downtime:
cd /srv/nextcloud
sudo docker compose down
sudo umount /srv/nextcloud-data
sudo e2fsck -f /srv/hdd/nextcloud.ext4
sudo mount -a
sudo docker compose up -d
This keeps that ext4 volume healthy long-term.
D) Background jobs / DB optimisations (monthly-ish)
After upgrades, I’ll run:
docker exec -u www-data nextcloud php occ db:add-missing-indices
docker exec -u www-data nextcloud php occ maintenance:repair
Then I check: Administration settings → Overview and clear any warnings.
6) A quick “Admin checklist” I keep pinned
When something feels off (uploads failing, app weirdness), I run through:
- Is it installed and healthy?
curl -sS http://127.0.0.1:8092/status.php
- Are containers up?
cd /srv/nextcloud && sudo docker compose ps
- Is cron mode set?
docker exec -u www-data nextcloud php occ config:app:get core backgroundjobs_mode
- Is storage mounted?
findmnt -T /srv/nextcloud-data
df -h /srv/nextcloud-data
- Any errors?
sudo tail -n 200 /srv/nextcloud-data/ncdata/nextcloud.log
If those are green, 95% of problems disappear.
메타데이터
- post_id
- b24c3c8ca03a
- slug
- configuring-my-private-nextcloud-running-on-ubuntu-b24c3c8ca03a
- url
- https://medium.com/@SQLShark/configuring-my-private-nextcloud-running-on-ubuntu-b24c3c8ca03a
- canonical_url
- https://medium.com/@SQLShark/configuring-my-private-nextcloud-running-on-ubuntu-b24c3c8ca03a
- author_url
- https://medium.com/@SQLShark
- status
- ok
- fetched_at
- 2026-06-16 19:09:56