-
Notifications
You must be signed in to change notification settings - Fork 30
Docker compose public availability #190
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
af8e537
5440235
089be74
5a9779b
3da1458
0fa6eaf
1946d9f
0a2d9ea
b7421d2
abe15cf
be86e19
6744a17
2669950
056e6df
9a329fd
4c04bd3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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 | ||
| ``` | ||
| Install Docker following the [official Docker guide](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository) | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 | ||
|
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. | ||
|
fschade marked this conversation as resolved.
|
||
| Same should appear with the other domains you are using. | ||
|
|
||
| Example with Chrome browser: | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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) | ||
| 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) | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. not necessarily, the file can be downloaded from GH too...
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 ;)
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe 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 |
||||||
| - [**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 | ||||||
|
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: | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| - [Common Issues & Help](./../50-resources/30-common-issues.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." | ||
|
|
||
| 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 | ||
| --- | ||
|
|
||
This file was deleted.
This file was deleted.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.