Skip to content
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

Tutorial for setting up AppFlowy on Hetzner Cloud #959

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

suntorytimed
Copy link
Contributor

  • using Hetzner Cloud server
  • using Hetzner Cloud Object Storage

The server and credentials used in the tutorial and shown in the screenshot got deleted and don't need to be censored.

* using Hetzner Cloud server
* using Hetzner Cloud Object Storage

## Introduction

In this tutorial we are going to setup our own AppFlowy Cloud server using the official documentation by AppFlowy. We will use a Hetzner Cloud Server and the new Hetzner Object Storage. This tutorial won't cover how you create a new project called "AppFlowy", and how Hetzner Cloud servers are created. We will purely focus on setting up AppFlowy, setting up a bucket and connecting it to our AppFlowy Cloud server.
Copy link

Choose a reason for hiding this comment

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

Maybe add a few links here?

Suggested change
In this tutorial we are going to setup our own AppFlowy Cloud server using the official documentation by AppFlowy. We will use a Hetzner Cloud Server and the new Hetzner Object Storage. This tutorial won't cover how you create a new project called "AppFlowy", and how Hetzner Cloud servers are created. We will purely focus on setting up AppFlowy, setting up a bucket and connecting it to our AppFlowy Cloud server.
In this tutorial we are going to setup our own [AppFlowy](https://appflowy.io/) Cloud server using the official documentation by AppFlowy. We will use a [Hetzner Cloud Server](https://hetzner.cloud) and the new [Hetzner Object Storage](https://docs.hetzner.com/storage/object-storage). This tutorial won't cover how you create a new project called "AppFlowy", and how Hetzner Cloud servers are created. We will purely focus on setting up AppFlowy, setting up a bucket and connecting it to our AppFlowy Cloud server.


```

Remove following lines from the deploy.env, as we won't use those services:
Copy link

Choose a reason for hiding this comment

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

Suggested change
Remove following lines from the deploy.env, as we won't use those services:
Remove following lines from the `deploy.env`file, as we won't use those services:


### Step 2.4 - Adjust the deploy.env

Now we need to adjust the deploy.env file to use our own passwords and point to the Hetzner Object Storage. I recommend to keep the order of values identical, as we are going to commit our changes locally. This makes rebasing easier. At the time of creation of this tutorial you should adjust following values with your own password and SMTP configuration:
Copy link

Choose a reason for hiding this comment

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

Suggested change
Now we need to adjust the deploy.env file to use our own passwords and point to the Hetzner Object Storage. I recommend to keep the order of values identical, as we are going to commit our changes locally. This makes rebasing easier. At the time of creation of this tutorial you should adjust following values with your own password and SMTP configuration:
Now we need to adjust the `deploy.env` file to use our own passwords and point to the Hetzner Object Storage. I recommend to keep the order of values identical, as we are going to commit our changes locally. This makes rebasing easier. At the time of creation of this tutorial you should adjust following values with your own password and SMTP configuration:


### Step 2.5 - Add and commit your changes

Now we use git to store our changes in the git log and make it easier to pull updates from upstream. By using this method every change of defaults in the deploy.env and docker-compose.yml will result in merge conflicts when pulling an update, which you need to resolve before restarting/updating your server.
Copy link

Choose a reason for hiding this comment

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

Suggested change
Now we use git to store our changes in the git log and make it easier to pull updates from upstream. By using this method every change of defaults in the deploy.env and docker-compose.yml will result in merge conflicts when pulling an update, which you need to resolve before restarting/updating your server.
Now we use git to store our changes in the git log and make it easier to pull updates from upstream. By using this method every change of defaults in the `deploy.env` and `docker-compose.yml` will result in merge conflicts when pulling an update, which you need to resolve before restarting/updating your server.


### Step 2.2 - Setup the nginx proxy of AppFlowy Cloud to use your SSL certificate

Put your SSL certificate and private key in the folder ./nginx/ssl/ or adjust the location in the docker-compose.yml to point to your own certificates. Alternatively you can create a Let's Encrypt SSL certificate via DNS challenge on the Hetzner DNS service by using lego:
Copy link

Choose a reason for hiding this comment

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

Suggested change
Put your SSL certificate and private key in the folder ./nginx/ssl/ or adjust the location in the docker-compose.yml to point to your own certificates. Alternatively you can create a Let's Encrypt SSL certificate via DNS challenge on the Hetzner DNS service by using lego:
Put your SSL certificate and private key in the folder `./nginx/ssl/` or adjust the location in the `docker-compose.yml` to point to your own certificates. Alternatively you can create a Let's Encrypt SSL certificate via DNS challenge on the Hetzner DNS service by using lego:

~/go/bin/lego --domains="appflowy.example.com" --email="[email protected]" --http run
```

And adjust the docker-compose.yml to point to the output folder of lego:
Copy link

Choose a reason for hiding this comment

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

Suggested change
And adjust the docker-compose.yml to point to the output folder of lego:
And adjust the `docker-compose.yml` to point to the output folder of lego:


### Step 2.3 - Remove the minio service from the docker-compose.yml

Remove the minio service from the docker-compose.yml by deleting following lines:
Copy link

Choose a reason for hiding this comment

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

Suggested change
Remove the minio service from the docker-compose.yml by deleting following lines:
Remove the minio service from the `docker-compose.yml` by deleting following lines:

- minio_data:/data
```

Don't forget to remove the minio_data volume from the volumes at the end of the docker-compose.yml. Only the postgres_data volume should remain:
Copy link

Choose a reason for hiding this comment

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

Suggested change
Don't forget to remove the minio_data volume from the volumes at the end of the docker-compose.yml. Only the postgres_data volume should remain:
Don't forget to remove the `minio_data` volume from the volumes at the end of the `docker-compose.yml`. Only the `postgres_data `volume should remain:


## Step 3

Start you AppFlowy Cloud server via docker-compose (or docker compose, depending on your installation method):
Copy link

Choose a reason for hiding this comment

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

Suggested change
Start you AppFlowy Cloud server via docker-compose (or docker compose, depending on your installation method):
Start you AppFlowy Cloud server via `docker-compose` (or `docker compose`, depending on your installation method):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants