aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorLibravatar Vijay A <avijayr@protonmail.com>2021-05-19 10:33:26 +0530
committerLibravatar Vijay Raghavan Aravamudhan <vraravam@users.noreply.github.com>2021-05-19 10:34:38 +0530
commite3e17652c7d90fed0f981d68b875fec9ce71d041 (patch)
treefbd16ed0dedcbcc51f234b373744f7feacc3b1ff /README.md
parentBump lodash from 4.17.19 to 4.17.21 (diff)
downloadferdium-server-e3e17652c7d90fed0f981d68b875fec9ce71d041.tar.gz
ferdium-server-e3e17652c7d90fed0f981d68b875fec9ce71d041.tar.zst
ferdium-server-e3e17652c7d90fed0f981d68b875fec9ce71d041.zip
[Housekeeping] Added missing hygiene configs/files for developer/contributor.
Diffstat (limited to 'README.md')
-rw-r--r--README.md39
1 files changed, 24 insertions, 15 deletions
diff --git a/README.md b/README.md
index 098ba16..d6ff0ff 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
1<p align="center"> 1<p align="center">
2 <img src="./logo.png" alt="" width="300"/> 2 <img src="./logo.png" alt="" width="300"/>
3</p> 3</p>
4 4
5# ferdi-server 5# ferdi-server
@@ -16,6 +16,7 @@ Official Server software for the [Ferdi Messaging Browser](https://getferdi.com)
16 - [Transferring user data](#transferring-user-data) 16 - [Transferring user data](#transferring-user-data)
17 - [Creating and using custom recipes](#creating-and-using-custom-recipes) 17 - [Creating and using custom recipes](#creating-and-using-custom-recipes)
18 - [Listing custom recipes](#listing-custom-recipes) 18 - [Listing custom recipes](#listing-custom-recipes)
19 - [Contributing to ferdi-server's development](#contributing-to-ferdi-servers-development)
19 - [License](#license) 20 - [License](#license)
20 21
21## Why use a custom Ferdi server? 22## Why use a custom Ferdi server?
@@ -37,7 +38,7 @@ If you are not interested in doing this you can use our official instance of Fer
37### with Docker 38### with Docker
38The easiest way to set up Ferdi server on your server is with Docker. 39The easiest way to set up Ferdi server on your server is with Docker.
39 40
40The Docker image can be run as is, with the default sqlite database or you can modifying your ENV variables to use an external database (e.g. MySQL, MariaDB, Postgres, etc). 41The Docker image can be run as is, with the default sqlite database or you can modifying your ENV variables to use an external database (e.g. MySQL, MariaDB, Postgres, etc).
41After setting up the docker container we recommend you to set up an NGINX reverse proxy to access ferdi-server outside of your home network and protect it with an SSL certificate. 42After setting up the docker container we recommend you to set up an NGINX reverse proxy to access ferdi-server outside of your home network and protect it with an SSL certificate.
42 43
431. Pull the Docker image 441. Pull the Docker image
@@ -47,11 +48,11 @@ After setting up the docker container we recommend you to set up an NGINX revers
47 ``` 48 ```
482. Create a new Docker container with your desired configuration 492. Create a new Docker container with your desired configuration
49 50
50 ```sh 51 ```sh
51 docker create \ 52 docker create \
52 --name=ferdi-server \ 53 --name=ferdi-server \
53 -e NODE_ENV=development \ 54 -e NODE_ENV=development \
54 -e EXTERNAL_DOMAIN=<ferdi-serverdomain> \ 55 -e EXTERNAL_DOMAIN=<ferdi-serverdomain> \
55 -e DB_CONNECTION=<database> \ 56 -e DB_CONNECTION=<database> \
56 -e DB_HOST=<yourdbhost> \ 57 -e DB_HOST=<yourdbhost> \
57 -e DB_PORT=<yourdbport> \ 58 -e DB_PORT=<yourdbport> \
@@ -75,7 +76,7 @@ After setting up the docker container we recommend you to set up an NGINX revers
75 -v <path to database>:/app/database \ 76 -v <path to database>:/app/database \
76 -v <path to recipes>:/app/recipes \ 77 -v <path to recipes>:/app/recipes \
77 --restart unless-stopped \ 78 --restart unless-stopped \
78 getferdi/ferdi-server 79 getferdi/ferdi-server
79 ``` 80 ```
80 81
81 Alternatively, you can also use docker-compose v2 schemas 82 Alternatively, you can also use docker-compose v2 schemas
@@ -89,7 +90,7 @@ After setting up the docker container we recommend you to set up an NGINX revers
89 container_name: ferdi-server 90 container_name: ferdi-server
90 environment: 91 environment:
91 - NODE_ENV=development 92 - NODE_ENV=development
92 - EXTERNAL_DOMAIN=<ferdi-serverdomain> 93 - EXTERNAL_DOMAIN=<ferdi-serverdomain>
93 - DB_CONNECTION=<database> 94 - DB_CONNECTION=<database>
94 - DB_HOST=<yourdbhost> 95 - DB_HOST=<yourdbhost>
95 - DB_PORT=<yourdbPORT> 96 - DB_PORT=<yourdbPORT>
@@ -116,34 +117,32 @@ After setting up the docker container we recommend you to set up an NGINX revers
116 - <port>:80 117 - <port>:80
117 restart: unless-stopped 118 restart: unless-stopped
118 ``` 119 ```
120
1193. Optionally, you can now [set up Nginx as a reverse proxy](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04#set-up-nginx-as-a-reverse-proxy-server). 1213. Optionally, you can now [set up Nginx as a reverse proxy](https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04#set-up-nginx-as-a-reverse-proxy-server).
120 122
121For more information on configuring the Docker image, visit the Docker image repository at <https://github.com/getferdi/server-docker>. 123For more information on configuring the Docker image, visit the Docker image repository at <https://github.com/getferdi/server-docker>.
122 124
123### Manual setup 125### Manual setup
126
1241. Clone this repository 1271. Clone this repository
1252. Install the [AdonisJS CLI](https://adonisjs.com/) 1282. Install the [AdonisJS CLI](https://adonisjs.com/)
1263. Copy `.env.example` to `.env` and edit the [configuration](#configuration) to your needs 1293. Copy `.env.example` to `.env` and edit the [configuration](#configuration) to your needs
1274. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc 1304. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc
1285. Run `npm install` to install local dependencies 1315. Run `npm install` to install local dependencies
1296. Run the database migrations with 1326. Run the database migrations with
133
130 ```js 134 ```js
131 adonis migration:run 135 node ace migration:run
132 ``` 136 ```
137
1337. Start the server with 1387. Start the server with
134 ```js 139
135 adonis serve --dev
136 ```
1378. If on previous step it does not run the server then run with
138 ```js 140 ```js
139 npm start 141 npm start
140 ``` 142 ```
141 or
142 ```js
143 node server.js
144 ```
145 143
146## Configuration 144## Configuration
145
147franz-server's configuration is saved inside the `.env` file. Besides AdonisJS's settings, ferdi-server has the following custom settings: 146franz-server's configuration is saved inside the `.env` file. Besides AdonisJS's settings, ferdi-server has the following custom settings:
148- `IS_CREATION_ENABLED` (`true` or `false`, default: `true`): Whether to enable the [creation of custom recipes](#creating-and-using-custom-recipes) 147- `IS_CREATION_ENABLED` (`true` or `false`, default: `true`): Whether to enable the [creation of custom recipes](#creating-and-using-custom-recipes)
149- `IS_REGISTRATION_ENABLED` (`true` or `false`, default: `true`): Whether to enable the creation of new user accounts 148- `IS_REGISTRATION_ENABLED` (`true` or `false`, default: `true`): Whether to enable the creation of new user accounts
@@ -153,19 +152,23 @@ franz-server's configuration is saved inside the `.env` file. Besides AdonisJS's
153 - Import Franz accounts 152 - Import Franz accounts
154 153
155## Importing your Franz account 154## Importing your Franz account
155
156ferdi-server allows you to import your full Franz account, including all its settings. 156ferdi-server allows you to import your full Franz account, including all its settings.
157 157
158To import your Franz account, open `http://[YOUR FERDI-SERVER]/import` in your browser and login using your Franz account details. ferdi-server will create a new user with the same credentials and copy your Franz settings, services and workspaces. 158To import your Franz account, open `http://[YOUR FERDI-SERVER]/import` in your browser and login using your Franz account details. ferdi-server will create a new user with the same credentials and copy your Franz settings, services and workspaces.
159 159
160## Transferring user data 160## Transferring user data
161
161Please refer to <https://github.com/getferdi/ferdi/wiki/Transferring-data-between-servers> 162Please refer to <https://github.com/getferdi/ferdi/wiki/Transferring-data-between-servers>
162 163
163## Creating and using custom recipes 164## Creating and using custom recipes
165
164ferdi-server allows to extends the Franz recipe catalogue with custom Ferdi recipes. 166ferdi-server allows to extends the Franz recipe catalogue with custom Ferdi recipes.
165 167
166For documentation on how to create a recipe, please visit [the official guide by Franz](https://github.com/meetfranz/plugins/blob/master/docs/integration.md). 168For documentation on how to create a recipe, please visit [the official guide by Franz](https://github.com/meetfranz/plugins/blob/master/docs/integration.md).
167 169
168To add your recipe to ferdi-server, open `http://[YOUR FERDI-SERVER]/new` in your browser. You can now define the following settings: 170To add your recipe to ferdi-server, open `http://[YOUR FERDI-SERVER]/new` in your browser. You can now define the following settings:
171
169- `Author`: Author who created the recipe 172- `Author`: Author who created the recipe
170- `Name`: Name for your new service. Can contain spaces and unicode characters 173- `Name`: Name for your new service. Can contain spaces and unicode characters
171- `Service ID`: Unique ID for this recipe. Does not contain spaces or special characters (e.g. `google-drive`) 174- `Service ID`: Unique ID for this recipe. Does not contain spaces or special characters (e.g. `google-drive`)
@@ -173,7 +176,13 @@ To add your recipe to ferdi-server, open `http://[YOUR FERDI-SERVER]/new` in you
173- `Recipe files`: Recipe files that you created using the [Franz recipe creation guide](https://github.com/meetfranz/plugins/blob/master/docs/integration.md). Please do *not* package your files beforehand - upload the raw files (you can drag and drop multiple files). ferdi-server will automatically package and store the recipe in the right format. Please also do not drag and drop or select the whole folder, select the individual files. 176- `Recipe files`: Recipe files that you created using the [Franz recipe creation guide](https://github.com/meetfranz/plugins/blob/master/docs/integration.md). Please do *not* package your files beforehand - upload the raw files (you can drag and drop multiple files). ferdi-server will automatically package and store the recipe in the right format. Please also do not drag and drop or select the whole folder, select the individual files.
174 177
175### Listing custom recipes 178### Listing custom recipes
179
176Inside Ferdi, searching for `ferdi:custom` will list all your custom recipes. 180Inside Ferdi, searching for `ferdi:custom` will list all your custom recipes.
177 181
182## Contributing to ferdi-server's development
183
184We welcome all contributors. Please read the [contributing guidelines](CONTRIBUTING.md) to setup your development machine and proceed.
185
178## License 186## License
187
179ferdi-server is licensed under the MIT License 188ferdi-server is licensed under the MIT License