diff options
author | Vijay A <avijayr@protonmail.com> | 2021-05-19 10:33:26 +0530 |
---|---|---|
committer | Vijay Raghavan Aravamudhan <vraravam@users.noreply.github.com> | 2021-05-19 10:34:38 +0530 |
commit | e3e17652c7d90fed0f981d68b875fec9ce71d041 (patch) | |
tree | fbd16ed0dedcbcc51f234b373744f7feacc3b1ff /README.md | |
parent | Bump lodash from 4.17.19 to 4.17.21 (diff) | |
download | ferdium-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.md | 39 |
1 files changed, 24 insertions, 15 deletions
@@ -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 |
38 | The easiest way to set up Ferdi server on your server is with Docker. | 39 | The easiest way to set up Ferdi server on your server is with Docker. |
39 | 40 | ||
40 | The 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). | 41 | The 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). |
41 | After 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 | After 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 | ||
43 | 1. Pull the Docker image | 44 | 1. 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 | ``` |
48 | 2. Create a new Docker container with your desired configuration | 49 | 2. 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 | |||
119 | 3. 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). | 121 | 3. 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 | ||
121 | For more information on configuring the Docker image, visit the Docker image repository at <https://github.com/getferdi/server-docker>. | 123 | For 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 | |||
124 | 1. Clone this repository | 127 | 1. Clone this repository |
125 | 2. Install the [AdonisJS CLI](https://adonisjs.com/) | 128 | 2. Install the [AdonisJS CLI](https://adonisjs.com/) |
126 | 3. Copy `.env.example` to `.env` and edit the [configuration](#configuration) to your needs | 129 | 3. Copy `.env.example` to `.env` and edit the [configuration](#configuration) to your needs |
127 | 4. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc | 130 | 4. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc |
128 | 5. Run `npm install` to install local dependencies | 131 | 5. Run `npm install` to install local dependencies |
129 | 6. Run the database migrations with | 132 | 6. Run the database migrations with |
133 | |||
130 | ```js | 134 | ```js |
131 | adonis migration:run | 135 | node ace migration:run |
132 | ``` | 136 | ``` |
137 | |||
133 | 7. Start the server with | 138 | 7. Start the server with |
134 | ```js | 139 | |
135 | adonis serve --dev | ||
136 | ``` | ||
137 | 8. 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 | |||
147 | franz-server's configuration is saved inside the `.env` file. Besides AdonisJS's settings, ferdi-server has the following custom settings: | 146 | franz-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 | |||
156 | ferdi-server allows you to import your full Franz account, including all its settings. | 156 | ferdi-server allows you to import your full Franz account, including all its settings. |
157 | 157 | ||
158 | To 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. | 158 | To 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 | |||
161 | Please refer to <https://github.com/getferdi/ferdi/wiki/Transferring-data-between-servers> | 162 | Please 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 | |||
164 | ferdi-server allows to extends the Franz recipe catalogue with custom Ferdi recipes. | 166 | ferdi-server allows to extends the Franz recipe catalogue with custom Ferdi recipes. |
165 | 167 | ||
166 | For documentation on how to create a recipe, please visit [the official guide by Franz](https://github.com/meetfranz/plugins/blob/master/docs/integration.md). | 168 | For 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 | ||
168 | To add your recipe to ferdi-server, open `http://[YOUR FERDI-SERVER]/new` in your browser. You can now define the following settings: | 170 | To 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 | |||
176 | Inside Ferdi, searching for `ferdi:custom` will list all your custom recipes. | 180 | Inside Ferdi, searching for `ferdi:custom` will list all your custom recipes. |
177 | 181 | ||
182 | ## Contributing to ferdi-server's development | ||
183 | |||
184 | We welcome all contributors. Please read the [contributing guidelines](CONTRIBUTING.md) to setup your development machine and proceed. | ||
185 | |||
178 | ## License | 186 | ## License |
187 | |||
179 | ferdi-server is licensed under the MIT License | 188 | ferdi-server is licensed under the MIT License |