Flowinity is the next generation image hosting server written in Vue and TypeScript.
Flowinity is intended to be an out of the way image hosting server for everyone else,
thus it doesn't have features you'd regularly find in other ShareX servers, such
as rich OpenGraph embeds. But instead has unique features like Insights, and
Collections.
Additionally, Flowinity has only recently become an open source project, so
documentation and resources are lacking initially, but will improve over time.
Clone the Docker-specific repo:
git clone https://github.com/PrivateUploader/docker-compose flowinity
Change directory into repo: cd flowinity
Create the container (change the environment variables to your liking):
DB_DATABASE=flowinity DB_USER=flowinity DB_PASSWORD=CHANGE_ME DB_ROOT_PASSWORD=CHANGE_ME docker-compose up -d
Create Flowinity user and group: useradd -m flowinity
Install MariaDB and Redis (with the RedisJSON plugin) on your server.
Login as the Flowinity user: su flowinity
Change directory into TPU home directory: cd
Clone the repository:
git clone https://github.com/PrivateUploader/Flowinity flowinity
Change directory into the repository: cd flowinity
Install dependencies: yarn install
Create systemd service files for TPU with
cp flowinity.service /etc/systemd/system/flowinity.service
Modify the systemd service file (use nano, vim, etc), replace all instances
of CHANGE_ME with your own values. Do not run Flowinity as root user and use the
user created earlier.
Start TPU and start on boot with systemctl enable flowinity --now
TPU includes an example NGINX configuration file, you can find it at
nginx.conf in either of the Docker or primary TPU repositories.
Copy it to your NGINX configuration directory:
cp nginx.conf /etc/nginx/conf.d/flowinity.conf (this folder can differ between
distributions, it could be /etc/nginx/sites-available, if so, symlink it to
/etc/nginx/sites-enabled).
Modify the NGINX configuration file (use nano, vim, etc), replace all
instances of CHANGE_ME with your own values.
Test the NGINX configuration: nginx -t
If the test is successful, reload NGINX: nginx -s reload
yarn serve-cluster - Start Flowinity in development cluster mode.
yarn start - Start Flowinity in production mode and build (cluster mode).
Even if you only have 1 CPU core/thread, you should still use start in
production as it will support the TPU_RESTART process command and will
automatically scale if you add more CPU cores/threads.
Do not restart Flowinity via pm2 or systemd if you are using the serve-cluster script in production.
This can be done in the admin panel or via a POST request to /api/v3/admin/restart (administrator account required, can be automated with "admin.ci" API scope).
Having a single CPU core will cause Flowinity to be temporarily unavailable when restarting.