In this tutorial I will explain how you can install a Self-hosted Standard Notes LXC Container This is the standard Notes API server and not the web app. Alternatively I can recommend Joplin.
To do this, first create a Debian 11 LXC container. I recommend 4 cores, 2GB Ram and 4GB Rom.
Alternatively you can also install int on Ubuntu.
1. Install updates and dependencies
The following commands are used to install the required dependencies.
apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
apt update
2. Install Docker
Docker will now be installed.
apt install docker-ce docker-compose -y
3. Install Self-hosted Standard Notes LXC Container
Create a folder in which you want to save your work files. We will refer to this folder as the working directory.
mkdir standardnotes cd standardnotes
Create an .env file
in your working directory. Then copy the sample values into your file:
touch .env
curl https://raw.githubusercontent.com/standardnotes/server/main/.env.sample > .env
Make sure that the keys in the .env file are replaced.
You can create a secure password with the following command.
openssl rand -hex 32
And with nano .env you can edit the .env file and replace the keys.
Copy the LocalStack bootstrap script and place it in your working directory. Make sure that the file has execution permissions:
curl https://raw.githubusercontent.com/standardnotes/server/main/docker/localstack_bootstrap.sh > localstack_bootstrap.sh
chmod +x localstack_bootstrap.sh
Copy the docker-compose.yml file to a file called docker-compose.yml
in your working folder:
curl https://raw.githubusercontent.com/standardnotes/server/main/docker-compose.example.yml > docker-compose.yml
4. Set DB password
Now change the password of the DB. To do this, create a secure password again.
openssl rand -hex 12
The password DB_PASSWORD in the .env file must be replaced.
MYSQL_ROOT_PASSWORD and MYSQL_PASSWORD in docker-compose.yml must be the same as in the .env file.
nano .env
nano docker-compose.yml
5. Start Standard Notes Server
You can now start the server with the following command.
docker compose pull && docker compose up -d
When the server has finally been started, you can log in to the server via the app.
To do this, enter the internal IP address of the server or, if necessary, you can also use the server behind a reverse proxy with a subdomain.
6. Disable Registration (optionally)
If you do not want other people to register on your standard Notes server, add the following line to the .env file.
AUTH_SERVER_DISABLE_USER_REGISTRATION=true
Leave a Reply