Feedbacky
Search…
[1.0.0 WIP] Hosting Feedback Instance
[STILL WORK IN PROGRESS, DO NOT USE] How to run Feedbacky on your own server.
Installation guide is made for Linux users, Windows or Mac OS users may need different set up to run Feedbacky Instance.

Prerequisites

Installation

    1.
    Create a file called docker-compose.yml inside folder where you want to host Feedbacky instance and fill it with these contents:
1
version: '3.3'
2
3
services:
4
feedbacky-client:
5
container_name: feedbacky-client
6
environment:
7
- REACT_APP_SERVER_IP_ADDRESS=${REACT_APP_SERVER_IP_ADDRESS}
8
- REACT_APP_SERVICE_NAME=${REACT_APP_SERVICE_NAME}
9
- REACT_APP_DEFAULT_USER_AVATAR=${REACT_APP_DEFAULT_USER_AVATAR}
10
ports:
11
- '${CLIENT_APP_PORT}:80'
12
links:
13
- feedbacky-server
14
volumes:
15
- feedbacky-data:/storage-data
16
image: plajer/feedbacky-proxy
17
restart: always
18
feedbacky-server:
19
container_name: feedbacky-server
20
ports:
21
- '${SERVER_APP_PORT}:8080'
22
volumes:
23
- feedbacky-data:/storage-data
24
env_file:
25
- .env
26
image: plajer/feedbacky-server
27
restart: always
28
29
volumes:
30
feedbacky-data:
Copied!
2. Create a file called .env inside the same folder and fill it with contents located here.

Configuring Environment Variables (Aka editing .env)

    Inside .env file edit MySQL related variables, fill MYSQL_USERNAME, MYSQL_PASSWORD and MYSQL_URL with proper data.
Please note that localhost won't work in MYSQL_URL variable due to nature of Docker (container is considered as a remote machine). IP of server must be provided and MySQL must be configured to accept non localhost connections.
To allow non localhost connections modify bind-address at /etc/mysql/mysql.conf.d/mysqld.cnf to 0.0.0.0,restart mysql service with service mysql restart and create MySQL user with % login access eg. 'feedbacky'@'%'.
    Fill JWT_SECRET with safely generated text at https://www.grc.com/passwords.htm or any other JWT secret token generator page online. (Random ASCII characters recommended)
    If you have any other apps running on ports 8090 or 8095 replace CLIENT_APP_PORT and SERVER_APP_PORT with ports that won't collide.
    Replace REACT_APP_SERVER_IP_ADDRESS with your server IP and CLIENT_APP_PORT Correctly set REACT_APP_SERVER_IP_ADDRESS should look like:
      ​✅(Correct) http://188.222.333.22:8090
      ​❌ (Wrong) http://188.222.333.22:8090/ (Do not use / at the end)
      ​❌ (Wrong) 188.222.333.22:8090 (http:// is missing)
      ​❌ (Wrong) http://188.222.333.22 (No port :8090 provided)
    Check link below if you want to configure Feedbacky to use your own domain name not numeric IP.
    Configure mail server settings, set MAIL_SENDER to no reply email you wish to use. Set MAIL_SERVICE_TYPE to one of the following types:
Type
Provider Name
Limits
smtp
Custom Mail Server
------------
mailgun
Mailgun
5k mails/3mo then 0.80$/1k mails
sendgrid
SendGrid
40k mails/1mo then 100 mails/day
Pricing last updated 06.2020
    Based on your choice fill proper variables (for Mailgun, MAIL_MAILGUN_API_KEY and MAIL_MAILGUN_API_BASE_URL, for SMTP MAIL_SMTP_USERNAME, MAIL_SMTP_PASSWORD, MAIL_SMTP_HOST and MAIL_SMTP_PORT)
    (Optional) Enable image compression to compress all images sent to the service. Set IMAGE_COMPRESSION_TYPE to one of the following types:
Type
Provider Name
Limits
cheetaho
CheetahO
500 images/mo
Pricing last updated 06.2020
    Based on your choice fill proper variables (for CheetahO, IMAGE_COMPRESSION_CHEETAHO_API_KEY)

Configuring OAuth apps

Feedbacky is passwordless service and relies on 3rd party services to register and log in. Currently supported OAuth providers are:
    Discord
    Google
    GitHub
Discord
To enable Discord login support go to https://discord.com/developers/applications and create new application. Create redirect to your Feedbacky instance (IP from REACT_APP_SERVER_IP_ADDRESS variable) and include /auth/discord at the end.
Click here for short setup video.
Then to allow logging in via Discord set OAUTH_DISCORD_ENABLED to true and fill OAUTH_DISCORD_REDIRECT_URI, OAUTH_DISCORD_CLIENT_ID and OAUTH_DISCORD_CLIENT_SECRET with credentials you get from OAuth app.
GitHub
To enable GitHub login support go to https://github.com/settings/developers and create new OAuth app. Set Authorization callback URL to REACT_APP_SERVER_IP_ADDRESS and include /auth/github at the end.
Click here for short setup video.
Then to allow logging in via GitHub set OAUTH_GITHUB_ENABLED to true and fill OAUTH_GITHUB_REDIRECT_URI, OAUTH_GITHUB_CLIENT_ID and OAUTH_GITHUB_CLIENT_SECRET with credentials you get from OAuth app.
Google
To enable Google login support go to https://console.developers.google.com/ and create new project. todo
Then to allow logging in via Google set OAUTH_GOOGLE_ENABLED to true and fill OAUTH_GOOGLE_REDIRECT_URI, OAUTH_GOOGLE_CLIENT_ID and OAUTH_GOOGLE_CLIENT_SECRET with credentials you get from OAuth app.

Running Feedbacky in the background

Via screen

You can keep track of Feedbacky instance via screen command. Create new screen with screen -S <screen name> and go to feedbacky-project folder, to enter screen again after you leave your SSH session just type screen -r <screen name>.

Finish - Download sources and start

Begin the code download process by doing docker-compose up, downloaded libraries should be less than 200 MB. After everything is downloaded feedbacky-server instance should start and then you can access your Feedbacky page.
Last modified 7mo ago