Dendrite is a new, experimental homeserver implementation in Go for the Matrix protocol. In this tutorial, you will learn how to install Dendrite on NetBSD.
Before you start, ensure that:
Dendrite requires the following dependencies to be installed on your system:
```
gcc
libidn2
libsodium
libolm
postgresql-client
```
You can install them using pkgin
(NetBSD's package manager):
```
sudo pkgin -y install gcc libidn2 libsodium libolm postgresql-client
```
Clone the Dendrite repository to a suitable location:
```
git clone https://github.com/matrix-org/dendrite.git
cd dendrite
```
Build the Dendrite binary:
```
go build -tags "sqlite3 postgres" ./cmd/dendrite-monolith
```
This will create an executable file called dendrite-monolith
in the current directory.
Dendrite uses a PostgreSQL database to store its data.
Create a new database and user for Dendrite:
```
sudo -u pgsql createdb dendrite
sudo -u pgsql createuser -s dendrite
```
Set a password for the dendrite
user:
```
sudo -u pgsql psql -c "ALTER USER dendrite PASSWORD 'YOUR_PASSWORD_HERE';"
```
You can replace YOUR_PASSWORD_HERE
with a password of your choice.
Create a new configuration file for Dendrite:
```
cp example-configs/dendrite.yaml dendrite.yaml
```
Edit the configuration file using your preferred text editor:
```
nano dendrite.yaml
```
Replace the database section in the configuration file with the following:
```
database:
engine: postgres
dbname: dendrite
user: dendrite
password: YOUR_PASSWORD_HERE
connect_string: "host=/var/run/postgresql dbname=dendrite user=dendrite password=YOUR_PASSWORD_HERE sslmode=disable"
```
Replace the YOUR_PASSWORD_HERE
placeholders with the password you set earlier.
Start Dendrite:
```
./dendrite-monolith
```
Dendrite will start listening on port 8008 by default. You can change this in the configuration file if necessary.
Open a web browser and go to http://your-ip-address:8008/_matrix/client/versions
. You should see a JSON response with the supported client-server API versions.
Congratulations, you have successfully installed Dendrite on NetBSD!
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!