All Projects → getferdi → server

getferdi / server

Licence: MIT license
👨🏾‍🍳 Server for Ferdi that you can re-use to run your own

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to server

Doact
A Terraform module for hosting your own runner for CI/CD on Digital Ocean to run jobs in your GitHub Actions workflows. 🚀
Stars: ✭ 42 (+61.54%)
Mutual labels:  digitalocean, self-hosted
docker-ttrss
Tiny Tiny RSS feed reader as a Docker image.
Stars: ✭ 55 (+111.54%)
Mutual labels:  self-hosted
dashy
🚀 A self-hostable personal dashboard built for you. Includes status-checking, widgets, themes, icon packs, a UI editor and tons more!
Stars: ✭ 7,103 (+27219.23%)
Mutual labels:  self-hosted
Hacktoberfest-2021
❗❗ Make your first PR now, accepting and merging PRs continuously. ⭐HACKTOBER ACCEPTED 2021 ✨✨Happy Hacking 💖💖
Stars: ✭ 11 (-57.69%)
Mutual labels:  digitalocean
self-hosted-services
A core set of privacy-preserving services that can be easily self-hosted via Docker Compose.
Stars: ✭ 123 (+373.08%)
Mutual labels:  self-hosted
minectl
minectl 🗺 is a cli for creating Minecraft server on different cloud provider.
Stars: ✭ 85 (+226.92%)
Mutual labels:  digitalocean
droplan
Manage iptable rules for the private interface on DigitalOcean droplets
Stars: ✭ 69 (+165.38%)
Mutual labels:  digitalocean
WorkGroup
Self-Hosted private Social Media-Intranet for Companies.
Stars: ✭ 21 (-19.23%)
Mutual labels:  self-hosted
jmal-cloud-view
JmalCloud 是一款私有云存储网盘项目,能够简单安全管理您的云端文件
Stars: ✭ 148 (+469.23%)
Mutual labels:  self-hosted
ethibox
Open-source web apps hoster
Stars: ✭ 130 (+400%)
Mutual labels:  self-hosted
adonisjs-laravel-mix
An AdonisJs fullstack application blueprint with Laravel Mix
Stars: ✭ 17 (-34.62%)
Mutual labels:  adonisjs
J.A.R.V.I.S
Just A Rather Very Intelligent System
Stars: ✭ 36 (+38.46%)
Mutual labels:  digitalocean
mCaptcha
A no-nonsense CAPTCHA system with seamless UX | Backend component
Stars: ✭ 473 (+1719.23%)
Mutual labels:  self-hosted
Shopixl
Open-source, self-hosted, Buycraft alternative
Stars: ✭ 17 (-34.62%)
Mutual labels:  self-hosted
teslamateapi
TeslaMateApi is a RESTful API to get data collected by self-hosted data logger TeslaMate in JSON
Stars: ✭ 47 (+80.77%)
Mutual labels:  self-hosted
hacktoberfest-2019
You can check the video here: #hacktoberfest
Stars: ✭ 28 (+7.69%)
Mutual labels:  digitalocean
traefik-docker-ansible
🐳 🐹  This is an Ansible playbook to install multiple Web applications on a single Ubuntu server with Docker and Traefik.
Stars: ✭ 75 (+188.46%)
Mutual labels:  self-hosted
pulumi-digitalocean
A DigitalOcean Pulumi resource package, providing multi-language access to DigitalOcean
Stars: ✭ 54 (+107.69%)
Mutual labels:  digitalocean
zusam
Private groups to share messages, photos, videos, links with friends and family.
Stars: ✭ 79 (+203.85%)
Mutual labels:  self-hosted
nextcloud-docker-compose
☁️ Spin up a Nextcloud instance with automatied backups and SSL certificate issuance.
Stars: ✭ 69 (+165.38%)
Mutual labels:  self-hosted

Server

Build Status Contributors

👨🏾‍🍳 Server for Ferdi that you can re-use to run your own

Why use a custom server?

Find answers to other frequently asked questions on getferdi.com/faq.

Toggle answer

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 the server at api.getferdi.com.

Features

  • 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

Deploying the App

Click the button below to deploy your server to the DigitalOcean App Platform:

Deploy to DigitalOcean

Setup with Docker 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 modify your ENV variables to use an external database (e.g. MySQL, MariaDB, Postgres, etc). After setting up the docker container we recommend you set up an NGINX reverse proxy to access Ferdi-server outside of your home network and protect it with an SSL certificate.

Warning, please note that the use of the previous config.txt is now deprecated and a number of environmental variables have changed, specifically the default database name and location, the internal container port, and an additional DATA_DIR variable has been added. Make sure to pass the correct environmental variables to your container at runtime. If you are an existing Ferdi-server user, please see the Ferdi docker documentation for more information about migrating to the new image.

  1. Pull the Docker image

    docker pull getferdi/ferdi-server
  2. Create a new Docker container with your desired configuration Existing users please seee the warning above.

        docker create \
        --name=ferdi-server \
        -e NODE_ENV=development \
        -e APP_URL=<ferdi-server-url> \
        -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 DB_SSL=false \
        -e MAIL_CONNECTION=smtp \
        -e SMTP_HOST=<smtpmailserver> \
        -e SMTP_PORT=<smtpport> \
        -e MAIL_SSL=true/false \
        -e MAIL_USERNAME=<yourmailusername> \
        -e MAIL_PASSWORD=<yourmailpassword> \
        -e MAIL_SENDER=<sendemailaddress> \
        -e IS_CREATION_ENABLED=true \
        -e IS_DASHBOARD_ENABLED=true \
        -e IS_REGISTRATION_ENABLED=true \
        -e CONNECT_WITH_FRANZ=true \
      -e DATA_DIR=data \
        -p <port>:3333 \
        -v <path to data>:/data \
        -v <path to recipes>:/app/recipes \
        --restart unless-stopped \
        getferdi/ferdi-server

    Alternatively, you can also use docker-compose v2 schema. An example can be found in the docker folder.

  3. Optionally, you can set up Nginx as a reverse proxy.

For more information on configuring the Docker image, please read the Ferdi docker documentation.

Manual setup
  1. Clone repository with submodule

  2. Install the AdonisJS CLI

  3. Copy .env.example to .env and edit the configuration to your needs

  4. Have env DB_SSL=true only if your database is postgres and it is hosted online on platforms like GCP, AWS, etc

  5. Run npm install to install local dependencies

  6. Run the database migrations with

    node ace migration:run
  7. Start the server with

    npm start
Configuration

franz-server's configuration is saved inside an .env file. Besides AdonisJS's settings, Ferdi-server has the following custom settings:

  • IS_CREATION_ENABLED (true or false, default: true): Whether to enable the creation of custom recipes
  • IS_REGISTRATION_ENABLED (true or false, default: true): Whether to enable the creation of new user accounts
  • IS_DASHBOARD_ENABLED (true or false, default: true): Whether to enable the user dashboard
  • CONNECT_WITH_FRANZ (true or false, 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
Importing your Franz account

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.

Transferring user data

Please refer to https://github.com/getferdi/ferdi/wiki/Transferring-data-between-servers

Creating and using custom recipes 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 recipe
  • Name: Name for your new service. Can contain spaces and unicode characters
  • Service ID: Unique ID for this recipe. Does not contain spaces or special characters (e.g. google-drive)
  • Link to SVG image: Direct link to a 1024x1024 SVG image 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 load
  • Recipe 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.
Listing custom recipes

Inside Ferdi, searching for ferdi:custom will list all of your custom recipes.

Contributing

Please read the contributing guidelines to setup your development machine and proceed.

Contributors

Thanks goes to these wonderful people (emoji key):


nick

💻

Michał Kostewicz

💻

Cromefire_

💻

OMKAR AGRAWAL

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].