A booru-style image board focused on simple data storage (no databases or other additional services, just files).
I created an install script to automatically install everything. It fetches the current GitHub release (alternatively you can modify it to use a local release archive) and
- creates a user and group with which the backend runs
- install the backend to
/opt/homebooru - install the frontend to
/srv/www/homebooru - save posts etc. in
/mnt - set up nginx as the webserver
- set up and start a systemd service to run the backend server
This script was mainly created for use in a LXC container in Proxmox (with another disk mounted to /mnt).
Just download the script and run it as root:
wget https://raw.githubusercontent.com/Danksa/homebooru/refs/heads/main/install
chmod u+x install
./installYou can also modify it before running to change some directories, if needed.
Note
The system is required to have npm, nodejs, nginx, wget, tar, ffmpeg and imagemagick installed already
I've tested this with ffmpeg version 7.1.1 and imagemagick version 7.1.1, older versions probably work as well.
The update script will update your homebooru by:
- detecting the user and group to use from the owner of the backend directory (
/opt/homebooruby default) - downloading the latest GitHub release
- updating the backend and frontend files
- transferring the settings of your old frontend
config.jsto the new one. (a copy of your old config will be created asconfig.js.bak, if anything goes wrong) - restarting the backend
To update your homebooru you can use the update script pretty much like you use the install script:
wget https://raw.githubusercontent.com/Danksa/homebooru/refs/heads/main/update
chmod u+x update
./updateif you use non-default directories for your frontend or backend, supply them as environment variables:
wget https://raw.githubusercontent.com/Danksa/homebooru/refs/heads/main/update
chmod u+x update
FRONTEND_DIR="/srv/somewhere" BACKEND_DIR="/usr/local/somewhere" ./update- Uploading images and videos (now with progress bars!)
- Importing images and videos from a local server directory
- Tagging posts
- Searching for posts by which tags they have (or don't have)
- Display posts (obviously!)
- Mass-tagging posts
- Tag categories
- Slideshows
- Navigating to next/previous post
- Tag aliases
- Tag merging
- Tag implications
- Duplicate detection
- Uploading files directly from other sites
- Automatic AI-based tagging
To start the development build just clone this directory, install the backend dependencies via npm:
npm install
and symlink the backend/data directory for the frontend:
ln -s ../backend/data ./frontend/data
Afterwards you can simply run npm run start to start the backend.
For the frontend you'll need some webserver, like http-server.
Then open http://localhost/ and you should be good to go!
You can run the version script with the parameter major, minor or patch to update the version. This will automatically update the VERSION variable in the install and update script.
For example: ./version minor
To build an archive to later install using the install script simply run the build command. It will extract the version from the backend package.json and create an archive named homebooru-v<VERSION>.tar.gz inside the package folder.
This project consists of two components:
- A backend written in Typescript, running in NodeJS (I know, I'm sorry)
- A static frontend written in plain HTML/CSS/JS, which can be hosted by a webserver of your choice
For more details, check out the frontend readme and backend readme.
The logo was created using the fonts Dancing Script and Noto Sans.





