Go to file
Zephyrrus 3c303241e1 feat: create settings schema (used for rendering and validating) 2021-01-09 01:03:03 +02:00
.github Create FUNDING.yml 2020-02-28 09:28:12 +09:00
.vscode Cleanup 2020-12-25 02:08:54 +09:00
docker add docker support 2020-12-26 21:00:53 +01:00
docs Merge branch 'master' of github.com:WeebDev/lolisafe 2021-01-05 16:39:13 +09:00
src feat: create settings schema (used for rendering and validating) 2021-01-09 01:03:03 +02:00
.dockerignore add docker support 2020-12-26 21:00:53 +01:00
.editorconfig More stuff 2019-02-19 00:06:55 +09:00
.gitattributes More stuff 2019-02-19 00:06:55 +09:00
.gitignore feat: add testing capabilities 2021-01-04 00:48:34 +09:00
.npmrc add docker support 2020-12-26 21:00:53 +01:00
README.md feat: add rehashing script 2021-01-07 03:08:08 +09:00
babel.config.js feat: add testing capabilities 2021-01-04 00:48:34 +09:00
chibisafe-sample.service Create sample service file 2021-01-05 02:33:41 +00:00
jest.config.js feat: add testing capabilities 2021-01-04 00:48:34 +09:00
knexfile.js fix: database location 2020-12-25 04:10:52 +09:00
nuxt.config.js chore: revert nuxt update, it breaks SSR in development mode, not worth it. 2021-01-07 21:56:35 +02:00
package-lock.json feat: create settings schema (used for rendering and validating) 2021-01-09 01:03:03 +02:00
package.json feat: create settings schema (used for rendering and validating) 2021-01-09 01:03:03 +02:00
pm2.json Rebrand 2020-12-25 20:45:22 +09:00

README.md

GitHub license Chat / Support Support me Support me

Attention

If you are upgrading from v3 to v4 (current release) and you want to keep your files and relations please read the migration guide.

Attention (2)

v4.0.1 changed the hashing algorithm for a better, faster one. So if you are currently running v4.0.0 and decide to update to v4.0.1+ it's in your best interest to rehash all the files your instance is serving. To do this go to the chibisafe root folder and run node src/api/utils/rehashDatabase.js. Depending on how many files you have it can take a few minutes or hours, there's a progress bar that will give you an idea.

What is this?

Chibisafe is a file uploader service written in node that aims to to be easy to use and easy to set up. It's mainly intended for images and videos, but it accepts anything you throw at it.

  • You can run it in public or private mode, making it so only people with user accounts can upload files as well as controlling if user signup is enabled or not.
  • Out of the box support for ShareX configuration letting you upload screenshots and screencaptures directly to your chibisafe instance.
  • Browser extension to be able to right click any image/video and upload it directly to your chibisafe instance.
  • Chunk uploads enabled by default to be able to handle big boi files.
  • API Key support so you can integrate the service with whatever you desire.
  • Albums, tags and Discord-like search function
  • User list and control panel

Pre-requisites

This guide asumes a lot of things, including that you know your way around linux, nginx and internet in general.

  • Decently updated version of linux
  • node version 12+
  • build-essential package installed to build dependencies
  • ffmpeg package installed if you want video thumbnails
  • pm2 globally installed (npm i -g pm2) to keep the service alive at all times.
  • A database, postgresql preferably. You can also fall back to sqlite3 which ships by default.

Installing

  1. Clone the repository and cd into it
  2. Run npm i
  3. Run npm run setup

Chibisafe is now installed, configured and ready. Now you need to serve it to the public by using a domain name.

  1. Check the nginx file for a sample configuration that has every step to run chibisafe securely on production.

After you finish setting up nginx, you need to start chibisafe by using pm2. If you want to use something else like forever, ensure that the process spawned from npm run start never dies.

  1. Run pm2 start pm2.json:
  2. Profit

Author

Chibisafe © Pitu, Released under the MIT License.
Authored and maintained by Pitu.

chibisafe.moe · GitHub @Pitu