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
179 changes: 141 additions & 38 deletions docs/admin/20-getting-started/20-docker-compose.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,84 +5,187 @@ title: Docker Compose
description: "🌟 Full-blown featureset including web office and full-text search."
---

# Docker Compose
# OpenCloud with Docker Compose

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

Spin up a temporary local instance of OpenCloud using **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.

## **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/)
- **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

---

## 1. Download
## 1. Connect to Your Server
Log into your server via SSH:

Download the `opencloud_full` folder (this folder contains a multi-file Docker Compose configuration):
```bash
ssh root@YOUR.SERVER.IP
```

```Shell
git clone https://github.com/opencloud-eu/opencloud.git
## 2. Install Docker
Update your system and install Docker.


First, perform an update and upgrade:

```bash
apt update && apt upgrade -y
```
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not only update the package list (that is apt update, but updates the entire system. Nothing wrong with that.
However, I would still not write it that detailed. The entire article is distro agnostic, but this is a debian/ubuntu only command, so I would rather recommend something like Make sure your system packages are updated according to your base system. or so.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can add for other distro the commands in a separate tab.
But I think we need a decision if we only should describe ubuntu or other distro too. If only Ubuntu you are right, we need to write it.

Install Docker following the [official Docker guide](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again a reference to Ubuntu. Either it is targeted at Ubuntu, than we should change the Prerequisite above saying that, or we keep it distro agnostic.


---
Once Docker is installed, enable and start the service:

```bash
systemctl enable docker && systemctl start docker
```

## 2. Start
## 3. Clone the OpenCloud Repository
Download the necessary configuration files:

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

cd into the Docker Compose configuration folder:
## 4. Configure the .env File for Staging Certificates
Before requesting real SSL certificates, test the setup with Let's Encrypt’s staging environment.

```Shell
Navigate to the OpenCloud configuration folder:

```bash
cd opencloud/deployments/examples/opencloud_full
```

Start the deployment with Docker Compose:
Edit the `.env` file with the editor of your choice:

In our example we use nano

```bash
nano .env
Comment thread
fschade marked this conversation as resolved.
```

Modify these settings:

### ✅ Disable insecure mode
```bash
# INSECURE=true
```

### ✅ Set your domain names
```bash
TRAEFIK_DOMAIN=traefik.YOUR.DOMAIN
OC_DOMAIN=cloud.YOUR.DOMAIN
COLLABORA_DOMAIN=collabora.YOUR.DOMAIN
WOPISERVER_DOMAIN=wopiserver.YOUR.DOMAIN
```

### ✅ Set your admin password
```bash
ADMIN_PASSWORD=YourSecurePassword
```

### ✅ Set your email for SSL certification
```bash
TRAEFIK_ACME_MAIL=your@email.com
```

### ✅ Use Let's Encrypt staging certificates (for testing)
```bash
TRAEFIK_ACME_CASERVER=https://acme-staging-v02.api.letsencrypt.org/directory
```

Save and exit.

## 5. Start OpenCloud
Launch OpenCloud using Docker Compose:

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

<img src={require("./img/quick-guide/quick-docker-compose-up.png").default} alt="Admin general" width="1920"/>
This will start all required services in the background.

This starts all necessary containers in the background.
## 6. Verify SSL Certification

---
In your web browser, visit:

```bash
https://cloud.YOUR.DOMAIN
```

You should see a security warning because the staging certificate is not fully trusted.
Comment thread
fschade marked this conversation as resolved.
Same should appear with the other domains you are using.

Example with Chrome browser:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking: We promote open source - which Chrome is not particularly. Maybe consider using Firefox for these kind of things.


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

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

Edit the /etc/hosts file and add the following entries for local access:
✅ 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"/>

## 7. Apply a Real SSL Certificate
Once the staging certificate works, switch to a production certificate.

### Steps:
#### 1️⃣ Stop Docker Compose
```bash
docker compose down
```
127.0.0.1 cloud.opencloud.test
127.0.0.1 collabora.opencloud.test
127.0.0.1 wopiserver.opencloud.test

#### 2️⃣ Remove old staging certificates
```bash
docker volume rm opencloud_full_certs
```

Open [https://collabora.opencloud.test](https://collabora.opencloud.test) and accept the self-signed certificate. This step is needed as you can not accept the self-signed certificate if you try to open a .odt document from within the OpenCloud Web UI as Collabora is embedded via an iframe.
(If you changed volume names, adjust accordingly.)

<img src={require("./img/quick-guide/collabora-accept-self-signed-cert.png").default} alt="Accept self signed certificate" width="1920"/>
#### 3️⃣ Disable staging mode in `.env`
```bash
nano .env
```

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

---
#### 4️⃣ Restart OpenCloud with a real SSL certificate
```bash
docker compose up -d
```

## 4. Login
✅ Now, visiting `https://cloud.YOUR.DOMAIN` should show a secure connection with a valid SSL certificate.

Login with your browser:
- [https://cloud.opencloud.test](https://cloud.opencloud.test)
- user: **admin**
- password: **admin**
<img src={require("./img/docker-compose/status-secure.png").default} alt="Certificate Details" width="1920"/>

<img src={require("./img/quick-guide/quick-login.png").default} alt="Admin general" width="1920"/>
## 8. Log into OpenCloud
Open a browser and visit:

```bash
https://cloud.YOUR.DOMAIN
```

## 5. Conclusion
Login with:

Your OpenCloud server is now running and ready to use 🚀
**Username:** `admin`

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

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

## Troubleshooting
If you encounter any issues, check the [Common Issues & Help Guide](./../50-resources/30-common-issues.md)

If you encounter any issues or errors, try finding a solution here:
---

- [Common Issues & Help](./../50-resources/30-common-issues.md)
85 changes: 85 additions & 0 deletions docs/admin/20-getting-started/25-docker-compose-local.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
sidebar_position: 3
id: docker-compose-local
title: Docker Compose local
description: "🌟 Full-blown featureset including web office and full-text search."
---

## Guide for local installation
Spin up a temporary local instance of OpenCloud using **Docker Compose**.

## **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)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not necessarily, the file can be downloaded from GH too...

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will let it in, because we need sometimes to install it before. Only to be safe ;)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is a bit of overkill to clone the whole repo just for the dir. Maybe we need another "quick script" that people can call like wget https://opencloud.eu/docker-composition or so...
Out of scope of this PR tough

- [**Docker Compose**](https://docs.docker.com/compose/install/)

---

### 1. Download

Clone the OpenCloud repository:

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

---

### 2. Start

cd into the Docker Compose configuration folder:

```Shell
cd opencloud/deployments/examples/opencloud_full
```

Start the deployment with Docker Compose:

```Shell
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.

---

### 3. Add local domains to /etc/hosts
Comment thread
fschade marked this conversation as resolved.

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

```
127.0.0.1 cloud.opencloud.test
127.0.0.1 collabora.opencloud.test
127.0.0.1 wopiserver.opencloud.test
```

Open [https://collabora.opencloud.test](https://collabora.opencloud.test) and accept the self-signed certificate. This step is needed as you can not accept the self-signed certificate if you try to open a .odt document from within the OpenCloud Web UI as Collabora is embedded via an iframe.

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


---

### 4. Login

Login with your browser:
- [https://cloud.opencloud.test](https://cloud.opencloud.test)
- user: **admin**
- password: **admin**

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


### 5. Conclusion

Your OpenCloud server is now running and ready to use 🚀

---

### Troubleshooting

If you encounter any issues or errors, try finding a solution here:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If you encounter any issues or errors, try finding a solution here:
If you encounter any issues or errors, you will find a solution here:


- [Common Issues & Help](./../50-resources/30-common-issues.md)
2 changes: 1 addition & 1 deletion docs/admin/20-getting-started/30-docker.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 3
sidebar_position: 4
id: docker
title: Docker
description: "Classic docker setup."
Expand Down
2 changes: 1 addition & 1 deletion docs/admin/20-getting-started/40-bare-metal.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 4
sidebar_position: 5
id: bare-metal
title: Bare-Metal
description: "Manual, minimalist setup with essential features."
Expand Down
2 changes: 1 addition & 1 deletion docs/admin/20-getting-started/50-raspberry-pi.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 5
sidebar_position: 6
id: raspberry-pi
title: Raspberry Pi
---
Expand Down
6 changes: 0 additions & 6 deletions docs/admin/20-getting-started/60-hetzner.md

This file was deleted.

6 changes: 0 additions & 6 deletions docs/admin/20-getting-started/70-uberspace.md

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.