Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 27 additions & 34 deletions docs/admin/getting-started/container/docker-compose-local.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,29 @@
sidebar_position: 3
id: docker-compose-local
title: Docker Compose local
description: '🌟 Full-blown featureset including web office and full-text search.'
description: Full-blown featureset including web office and full-text search.
draft: false
---

## Guide for local installation
# Guide for local installation

Spin up a temporary local instance of OpenCloud using **Docker Compose**.
Spin up a temporary local instance of OpenCloud using Docker Compose.

## **Prerequisites:**
## Prerequisites

- **Linux**, **Mac** or **Windows** Subsystem for Linux [(WSL)](https://learn.microsoft.com/en-us/windows/wsl/install)
- [**Git**](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [**Docker Compose**](https://docs.docker.com/compose/install/)
- Linux, Mac or Windows Subsystem for Linux [(WSL)](https://learn.microsoft.com/en-us/windows/wsl/install)
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [Docker Compose](https://docs.docker.com/compose/install/)

---

## 1. Download
## Download

Clone the OpenCloud repository:
- Clone the OpenCloud repository

```bash
git clone https://github.com/opencloud-eu/opencloud-compose.git
```

---

## 2. Start
## Start

### cd into the Docker Compose configuration folder

Expand All @@ -41,45 +38,45 @@ cd opencloud-compose
cp .env.example .env
```

> **Note:** The repository includes .env.example as a template with default settings and documentation. Your actual .env file is excluded from version control (via .gitignore) to prevent accidentally committing sensitive information like passwords and domain-specific settings.
:::note
The repository includes .env.example as a template with default settings and documentation. Your actual .env file is excluded from version control (via .gitignore) to prevent accidentally committing sensitive information like passwords and domain-specific settings.
:::

### Configure deployment options

You can deploy using explicit -f flags:
- You can deploy using explicit -f flags

```bash
docker compose -f docker-compose.yml -f weboffice/collabora.yml -f traefik/opencloud.yml -f traefik/collabora.yml up -d
```

Or by uncomment or adding the COMPOSE_FILE variable in .env:
- or by uncomment or adding the COMPOSE_FILE variable in .env

```bash
COMPOSE_FILE=docker-compose.yml:weboffice/collabora.yml:traefik/opencloud.yml:traefik/collabora.yml
```

Set you initial admin password in the .env
- Set you initial admin password in the .env

```bash
INITIAL_ADMIN_PASSWORD=YOUR.SECRET.PASSWORD
```

This is mandatory for security reasons. Otherwise the OpenCloud container will not start.
### This is mandatory for security reasons. Otherwise the OpenCloud container will not start

Start the deployment with Docker Compose:
- Start the deployment with Docker Compose

```bash
docker compose up -d
```

<img src={require("./../img/quick-guide/quick-docker-compose-up.png").default} alt="Admin general" width="1920"/>

This starts all necessary containers in the background.

---
- This starts all necessary containers in the background

## 3. Add local domains to /etc/hosts
## Add local domains to /etc/hosts

Edit the /etc/hosts file and add the following entries for local access:
### Edit the /etc/hosts file and add the following entries for local access

```bash
127.0.0.1 cloud.opencloud.test
Expand All @@ -91,23 +88,19 @@ Open [https://collabora.opencloud.test](https://collabora.opencloud.test) and ac

<img src={require("./../img/quick-guide/collabora-accept-self-signed-cert.png").default} alt="Accept self signed certificate" width="1920"/>

---

## 4. Login
## Login

Login with your browser:
- Login with your browser

- [https://cloud.opencloud.test](https://cloud.opencloud.test)
- user: **admin**
- user: admin
- password: YOUR.SECRET.PASSWORD

<img src={require("./../img/quick-guide/quick-login.png").default} alt="Admin general" width="1920"/>

## 5. Conclusion
## Conclusion

Your OpenCloud server is now running and ready to use 🚀

---
- Your OpenCloud server is now running and ready to use

## Troubleshooting

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,37 @@
sidebar_position: 1
id: docker-compose-base
title: Docker Compose
description: '🌟 Full-blown featureset including web office.'
description: Full-blown featureset including web office.
draft: false
---

# OpenCloud with Docker Compose

Install a internet facing OpenCloud with SSL certification with Docker Compose.

This installation documentation is for **Ubuntu and Debian** systems. The software can also be installed on other Linux distributions, but the commands and package managers may differ.
This installation documentation is for Ubuntu and Debian systems. The software can also be installed on other Linux distributions, but the commands and package managers may differ.

## **Prerequisites**
## Prerequisites

- **Four domains** pointing to your server:
- Four domains pointing to your server:
- `cloud.YOUR.DOMAIN` → OpenCloud frontend
- `collabora.YOUR.DOMAIN` → Collabora Online Server
- `wopiserver.YOUR.DOMAIN` → WOPI server for document editing
- `traefik.YOUR.DOMAIN` → Traefik dashboard

Alternatively, you can use a wildcard domain (`*.YOUR.DOMAIN`)

- A **hosted server** (e.g., Hetzner, AWS, or your own VPS) with Linux and SSH access
- A hosted server (e.g., Hetzner, AWS, or your own VPS) with Linux and SSH access

---

## 1. Connect to Your Server
## Connect to Your Server

Log into your server via SSH:

```bash
ssh root@YOUR.SERVER.IP
```

## 2. Install Docker
## Install Docker

Update your system and install Docker.

Expand All @@ -51,50 +50,51 @@ Once Docker is installed, enable and start the service:
systemctl enable docker && systemctl start docker
```

## 3. Clone the OpenCloud Repository
## Clone the OpenCloud Repository

Download the necessary configuration files:

```bash
git clone https://github.com/opencloud-eu/opencloud-compose.git
```

## 4. Configure the .env File for Staging Certificates
## Configure the .env File for Staging Certificates

Before requesting real SSL certificates, test the setup with Let's Encrypt’s staging environment.

Navigate to the OpenCloud configuration folder:
### Navigate to the OpenCloud configuration folder

```bash
cd opencloud-compose
```

Create environment file:
### Create environment file

```bash
cp .env.example .env
```

> **Note:** The repository includes .env.example as a template with default settings and documentation. Your actual .env file is excluded from version control (via .gitignore) to prevent accidentally committing sensitive information like passwords and domain-specific settings.
> <br/>
:::note
The repository includes .env.example as a template with default settings and documentation. Your actual .env file is excluded from version control (via .gitignore) to prevent accidentally committing sensitive information like passwords and domain-specific settings.
:::

Edit the `.env` file with the editor of your choice:

In our example we use nano
### In our example we use nano

```bash
nano .env
```

Modify these settings:
## Modify these settings

### Disable insecure mode
### Disable insecure mode

```bash
# INSECURE=true
```

### Set your domain names
### Set your domain names

```bash
TRAEFIK_DOMAIN=traefik.YOUR.DOMAIN
Expand All @@ -103,25 +103,25 @@ COLLABORA_DOMAIN=collabora.YOUR.DOMAIN
WOPISERVER_DOMAIN=wopiserver.YOUR.DOMAIN
```

### Set your admin password
### Set your admin password

```bash
ADMIN_PASSWORD=YourSecurePassword
```

### Set your email for SSL certification
### Set your email for SSL certification

```bash
TRAEFIK_ACME_MAIL=your@email.com
```

### Use Let's Encrypt staging certificates (for testing)
### Use Let's Encrypt staging certificates (for testing)

```bash
TRAEFIK_ACME_CASERVER=https://acme-staging-v02.api.letsencrypt.org/directory
```

### Set your deployment options
### Set your deployment options

For Example without Collabora:

Expand All @@ -131,16 +131,14 @@ COMPOSE_FILE=docker-compose.yml:traefik/opencloud.yml

Save and exit.

### 🚨 Production Setup Consideration
### Production Setup Consideration

:::caution Production Setup Recommended

By default, OpenCloud stores configuration and data inside internal Docker volumes.
This works fine for local development or quick evaluations — **but is not suitable for production environments**.

This works fine for local development or quick evaluations — but is not suitable for production environments.
:::

#### 📦 Mount Persistent Volumes
#### Mount Persistent Volumes

In production, you should mount persistent local directories for configuration and data to ensure:

Expand All @@ -166,7 +164,7 @@ sudo chown -R 1000:1000 /your/local/path/opencloud

:::

If these variables are left unset, Docker will use internal volumes, which **do not persist** if the containers are removed — not recommended for real-world use.
If these variables are left unset, Docker will use internal volumes, which do not persist if the containers are removed — not recommended for real-world use.

:::caution Security Warning

Expand All @@ -176,7 +174,7 @@ This can pose a security risk in shared or multi-user environments. Make sure to

:::

## 5. Start OpenCloud
## Start OpenCloud

Launch OpenCloud using Docker Compose:

Expand All @@ -186,7 +184,7 @@ docker compose up -d

This will start all required services in the background.

## 6. Verify SSL Certification
## Verify SSL Certification

In your web browser, visit:

Expand All @@ -201,32 +199,30 @@ Example with Chrome browser:

<img src={require("./../../img/docker-compose/certificate-details.png").default} alt="Certificate Details" width="500"/>

Check the certificate details to confirm it’s from Let's Encrypt Staging.
- Check the certificate details to confirm it’s from Let's Encrypt Staging.

<img src={require("./../../img/docker-compose/certificate-viewer.png").default} alt="Certificate Details" width="500"/>
<img src={require("./../../img/docker-compose/subordinate-ca's.png").default} alt="Certificate Details" width="500"/>
<img src={require("./../../img/docker-compose/certificate-viewer.png").default} alt="Certificate Details" width="500"/>
<img src={require("./../../img/docker-compose/subordinate-ca's.png").default} alt="Certificate Details" width="500"/>

## 7. Apply a Real SSL Certificate
## Apply a Real SSL Certificate

Once the staging certificate works, switch to a production certificate.

### Steps

#### 1️⃣ Stop Docker Compose
### Stop Docker Compose

```bash
docker compose down
```

#### 2️⃣ Remove old staging certificates
### Remove old staging certificates

```bash
rm -r certs
```

(If you changed volume names, adjust accordingly.)

#### 3️⃣ Disable staging mode in `.env`
### Disable staging mode in `.env`

```bash
nano .env
Expand All @@ -238,7 +234,7 @@ Comment the staging server:
# TRAEFIK_ACME_CASERVER=https://acme-staging-v02.api.letsencrypt.org/directory
```

#### 4️⃣ Restart OpenCloud with a real SSL certificate
### Restart OpenCloud with a real SSL certificate

```bash
docker compose up -d
Expand All @@ -248,7 +244,7 @@ docker compose up -d

<img src={require("./../../img/docker-compose/status-secure.png").default} alt="Certificate Details" width="1920"/>

## 8. Log into OpenCloud
## Log into OpenCloud

Open a browser and visit:

Expand All @@ -258,9 +254,9 @@ https://cloud.YOUR.DOMAIN

Login with:

**Username:** `admin`
Username: `admin`

**Password:** (your password)
Password: (your password)

<img src={require("./../../img/docker-compose/login.png").default} alt="Admin general" width="1920"/>

Expand Down
Loading