old readme
This commit is contained in:
commit
4e5531b2e2
1 changed files with 169 additions and 0 deletions
169
README.md
Normal file
169
README.md
Normal file
|
@ -0,0 +1,169 @@
|
|||
# Outbag Server
|
||||
Did you know that you can host your own outbag instance?
|
||||
|
||||
This repo contains the official outbag server.
|
||||
|
||||
## Setup
|
||||
**\*Keep in mind that you need a valid SSL certificate for your domain**
|
||||
|
||||
### Using docker
|
||||
[Find docker instructions in the docker repo](https://gitlab.com/outbag/containers)
|
||||
|
||||
### Manually
|
||||
#### Requirements
|
||||
- `git`
|
||||
- `nodejs` & `npm`
|
||||
- a mysql database, we recommend `mariadb`
|
||||
|
||||
#### Setting up MariaDB
|
||||
|
||||
1. Install `mariadb` using your system's package manager. e.g.:
|
||||
```bash
|
||||
sudo apt install mariadb-server
|
||||
```
|
||||
2. Secure your installation
|
||||
```bash
|
||||
sudo mysql_secure_installation
|
||||
```
|
||||
3. Start the MySQL/MariaDB command line mode (you have to enter the befor given paswsord):
|
||||
```bash
|
||||
sudo mysql -u root -p
|
||||
```
|
||||
4. Then a MariaDB [root]> prompt will appear.
|
||||
Create an user and a databse:
|
||||
```sql
|
||||
CREATE USER 'outbagUser'@'localhost' IDENTIFIED BY 'aSecurePassword';
|
||||
CREATE DATABASE IF NOT EXISTS outbag CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||
GRANT ALL PRIVILEGES ON outbag.* TO 'outbagUser'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
```
|
||||
To not forget to replace username, password and database name.
|
||||
5. You can quit the prompt by entering:
|
||||
```sql
|
||||
quit;
|
||||
```
|
||||
|
||||
|
||||
#### Install
|
||||
1. Clone this git repo
|
||||
```bash
|
||||
git clone https://gitlab.com/outbag/server/ outbag-server
|
||||
cd outbag-server
|
||||
```
|
||||
2. Download & install the dependecies
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
#### Setup - with config file
|
||||
1. Create a config file, e.g. in `/opt/config.juml`,
|
||||
or run the server once,
|
||||
to autogenerate that file.
|
||||
```bash
|
||||
node . -c /opt/config.juml
|
||||
```
|
||||
2. The server will crash.
|
||||
Now open the config file with your favourite text editor.
|
||||
You have to change the database login details.
|
||||
3. If you do not proxy your Server from https to http,
|
||||
you have to add the path to your ssl certificate and enable ssl.
|
||||
4. After closing the file,
|
||||
you can restart the server (It should not crash this time)
|
||||
```bash
|
||||
node . -c /opt/config.juml
|
||||
```
|
||||
|
||||
#### Setup - with environment variables
|
||||
1. List of environment variables with default values:
|
||||
```
|
||||
OUTBAG_PORT=7223
|
||||
OUTBAG_EXPOSED_PORT=7223
|
||||
OUTBAG_EXPOSED_PATH=/
|
||||
OUTBAG_HOST=localhost
|
||||
OUTBAG_CERT_LIVE_SEC=2592000
|
||||
|
||||
OUTBAG_SSL_ENABLED=false
|
||||
OUTBAG_SSL_PRIVATE_KEY=privkey.pem
|
||||
OUTBAG_SSL_CERT=cert.pem
|
||||
OUTBAG_SSL_CHAIN=chain.pem
|
||||
|
||||
OUTBAG_MYSQL_HOST=localhost
|
||||
OUTBAG_MYSQL_PORT=3306
|
||||
OUTBAG_MYSQL_USER=admin
|
||||
OUTBAG_MYSQL_PASSWORD=12346789
|
||||
OUTBAG_MYSQL_DATABASE=outbag
|
||||
|
||||
OUTBAG_MAX_USERS=0
|
||||
OUTBAG_DEFAULT_MAX_ROOMS=3
|
||||
OUTBAG_DEFAULT_MAX_ROOMS_SIZE=10000
|
||||
OUTBAG_DEFAULT_MAX_USERS_PER_ROOM=5
|
||||
```
|
||||
Only set the environment variables you want to change.
|
||||
You have to set the MYSQL varibales.
|
||||
2. If you do not proxy your Server from https to http,
|
||||
you have to set the path to your ssl certificate and enable ssl.
|
||||
3. Start the server
|
||||
```bash
|
||||
node .
|
||||
```
|
||||
|
||||
### Hosting the UI
|
||||
As of writing,
|
||||
there is no official method of having the backend host the UI yet
|
||||
(we are working on it).
|
||||
|
||||
For the time being,
|
||||
just follow the [manual guide](https://gitlab.com/outbag/app/)
|
||||
|
||||
### Setting up and using a proxy
|
||||
**NOTE: This is for advanced users only**
|
||||
|
||||
If you do not want to expose multiple ports,
|
||||
you can use a proxy to expose both the app and the server on the same port.
|
||||
|
||||
1. Download `nginx`
|
||||
(or your favourite `nginx` alternative, e.g. `apache`)
|
||||
using your system's package manager.
|
||||
e.g.:
|
||||
```bash
|
||||
sudo apt install nginx
|
||||
```
|
||||
2. Open the config file using your favourite text editor.
|
||||
_NOTE: The nginx config file is probably located at /etc/nginx/http.d/default.conf_
|
||||
You probably want something similar to this in your config file:
|
||||
```conf
|
||||
location /api {
|
||||
if ($request_uri ~* "/api(/.*$)") {
|
||||
set $path_remainder $1;
|
||||
}
|
||||
proxy_pass http://127.0.0.1:7223/$path_remainder;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_buffering off;
|
||||
}
|
||||
location /.well-known/outbag/server {
|
||||
proxy_pass http://127.0.0.1:7223/.well-known/outbag/server;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_buffering off;
|
||||
}
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:8080$request_uri;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_buffering off;
|
||||
}
|
||||
```
|
||||
3. Next up enable and start the system service
|
||||
(e.g. `systemctl enable nginx` and `systemctl start nginx`;
|
||||
or `rc-update add nginx` and `rc-service nginx start`)
|
||||
4. Now open `127.0.0.1` or `<your.domain.com>` (when using https)
|
||||
in your browser and you should be prompted with the webapp
|
||||
(in case you enabled it)
|
||||
5. To be able to use the server properly,
|
||||
you should go back to the `docker-compose.yml` file
|
||||
and change the `OUTBAG_EXPOSED_PATH` variable to point to `/api`.
|
||||
6. To finish of,
|
||||
restart the containers:
|
||||
```bash
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
```
|
||||
## API
|
||||
[API docu](https://gitlab.com/outbag/server/-/blob/main/docs/api.md)
|
Loading…
Reference in a new issue