Skip to content

OpenCloud

OpenCloud (oCIS is a self-hosted cloud storage platform, serving as a Nextcloud replacement. It runs in a NixOS container with private networking.

Source: server/containers/opencloud.nix

Network

PropertyValue
Private networkYes
Host address10.10.10.100
Container address10.10.10.101
Port9200
Subdomaincloud.nemnix.site
Authelia middlewareNo

Configuration

nix
services.opencloud = {
  enable = true;
  port = 9200;
  url = "https://cloud.nemnix.site";
  address = config.containers.opencloud.localAddress;

  environment = {
    OC_LOG_LEVEL = "info";
    OC_LOG_COLOR = "true";
    OC_LOG_PRETTY = "true";

    PROXY_TLS = "false";       # TLS handled by Traefik
    OC_INSECURE = "true";      # Trust Traefik's TLS termination
    IDM_ADMIN_PASSWORD = "admin";
  };
};
SettingValuePurpose
PROXY_TLSfalseTLS is terminated at Traefik, not oCIS
OC_INSECUREtrueAccept upstream connections without TLS verification
IDM_ADMIN_PASSWORDadminInitial admin password

WARNING

The IDM_ADMIN_PASSWORD is set to "admin" in plaintext. This should be changed after initial setup or migrated to an agenix secret.

Why OpenCloud over Nextcloud?

A full Nextcloud configuration exists in containers/nextcloud.nix (currently commented out). The switch to OpenCloud likely reflects:

  • Simpler operation: oCIS is a single Go binary vs Nextcloud's PHP + Redis + PostgreSQL stack.
  • Lower resource usage: no PHP-FPM, no Redis, no OPcache tuning.
  • Modern architecture: microservice-based, designed for cloud-native deployment.

Traefik Route

nix
routers.opencloud = {
  rule = "Host(`cloud.nemnix.site`)";
  service = "opencloud";
  entryPoints = [ "websecure" ];
};

No Authelia middleware is applied -- OpenCloud handles its own authentication through its built-in identity management (IDM).

Data Persistence

OpenCloud stores data under /var/lib/opencloud. This persists through host reboots via the container data path in /var/lib/nixos-containers/opencloud/.

Backups

OpenCloud data is included in the Restic backup set:

nix
paths = [
  "/persist/var/lib/nixos-containers/opencloud/var/lib/opencloud"
];

See Backups & Recovery.

Built with VitePress