Official Server software for the Ferdi Messaging Browser
A custom server allows you to manage the data of all registered users yourself and add your own recipes to the repository.
If you are not interested in doing this you can use our official instance of Ferdi server at https://api.getferdi.com.
- User registration and login
- Service creation, download, listing and removing
- Workspace support
- Functioning service store
- User dashboard
- Export/import data to other ferdi-servers
- Password recovery
- Recipe update
The easiest way to set up Ferdi server on your server is with Docker.
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). 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.
-
Pull the Docker image
docker pull getferdi/ferdi-server
-
Create a new Docker container with your desired configuration
docker create \ --name=ferdi-server \ -e NODE_ENV=development \ -e DB_CONNECTION=<database> \ -e DB_HOST=<yourdbhost> \ -e DB_PORT=<yourdbPORT> \ -e DB_USER=<yourdbuser> \ -e DB_PASSWORD=<yourdbpass> \ -e DB_DATABASE=<yourdbdatabase> \ -e IS_CREATION_ENABLED=true \ -e CONNECT_WITH_FRANZ=true \ -p <port>:80 \ -v <path to data>:/config \ -v <path to database>:/usr/src/app/database \ -v <path to recipes>:/usr/src/app/recipes \ --restart unless-stopped \ getferdi/ferdi-server
Alternatively, you can also use docker-compose v2 schemas
--- version: "2" services: ferdi-server: image: getferdi/ferdi-server container_name: ferdi-server environment: - NODE_ENV=development - DB_CONNECTION=<database> - DB_HOST=<yourdbhost> - DB_PORT=<yourdbPORT> - DB_USER=<yourdbuser> - DB_PASSWORD=<yourdbpass> - DB_DATABASE=<yourdbdatabase> - IS_CREATION_ENABLED=true/false - CONNECT_WITH_FRANZ=true/false - IS_REGISTRATION_ENABLED=true/false - IS_DASHBOARD_ENABLED=true/false volumes: - <path to data>:/config - <path to database>:/usr/src/app/database - <path to recipes>:/usr/src/app/recipes ports: - <port>:80 restart: unless-stopped
-
Optionally, you can now set up Nginx as a reverse proxy.
For more information on configuring the Docker image, visit the Docker image repository at https://github.com/getferdi/server-docker.
- Clone this repository
- Install the AdonisJS CLI
- Copy
.env.example
to.env
and edit the configuration to your needs - Run
npm install
to install local dependencies - Run the database migrations with
adonis migration:run
- Start the server with
adonis serve --dev
franz-server's configuration is saved inside the .env
file. Besides AdonisJS's settings, ferdi-server has the following custom settings:
IS_CREATION_ENABLED
(true
orfalse
, default:true
): Whether to enable the creation of custom recipesIS_REGISTRATION_ENABLED
(true
orfalse
, default:true
): Whether to enable the creation of new user accountsIS_DASHBOARD_ENABLED
(true
orfalse
, default:true
): Whether to enable the user dashboardCONNECT_WITH_FRANZ
(true
orfalse
, default:true
): Whether to enable connections to the Franz server. By enabling this option, ferdi-server can:- Show the full Franz recipe library instead of only custom recipes
- Import Franz accounts
ferdi-server allows you to import your full Franz account, including all its settings.
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.
Please refer to https://github.com/getferdi/ferdi/wiki/Transferring-data-between-servers
ferdi-server allows to extends the Franz recipe catalogue with custom Ferdi recipes.
For documentation on how to create a recipe, please visit the official guide by Franz.
To add your recipe to ferdi-server, open http://[YOUR FERDI-SERVER]/new
in your browser. You can now define the following settings:
Author
: Author who created the recipeName
: Name for your new service. Can contain spaces and unicode charactersService ID
: Unique ID for this recipe. Does not contain spaces or special characters (e.g.google-drive
)Link to PNG/SVG image
: Direct link to a 1024x1024 PNG image and SVG that is used as a logo inside the store. Please use jsDelivr when using a file uploaded to GitHub as raw.githubusercontent files won't loadRecipe files
: Recipe files that you created using the Franz recipe creation guide. 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.
Inside Ferdi, searching for ferdi:custom
will list all your custom recipes.
ferdi-server is licensed under the MIT License