Ikibooru (demo) (src)
Inspired by boorus like that of Danbooru, Ikibooru aims to be more generic in that you are able to host files of any kind. Photographs, music, drawings, videos, video game maps, and porn I guess.
Ikibooru's core is written purely in Lua and features a complete installer for Linux systems, but should support most Unix-like systems.
- Five member exclusivity modes:
- Admin invites
- Moderators invite
- All members invite
- Public may register with approval
- Public may register without approval
- Tag-based and name-based search
- Tag categorization, in addition to 18+ setting
- Objects are completely generic (lists of files with max size quota)
- Passwordless e-mail authentication
- comments
- ...
- Reporting people??
Planned features in order of decreasing priority:
- Tag exclusions
- Objects that point to external webpages
- OAuth authentication
- Programmable file scanning
- Per-user object size quota
- Object creation rate limit
- Maybe XMPP/Jabber authentication
- Files for purchase?
Ikibooru is not compatible with traditional boorus such as Danbooru due to differences in vision.
Download
Download the latest version as a ZIP archive.
Installation
Required packages: ImageMagick, MySQL, Lua 5.3 (with the LuaRocks packages lfs, lua-zlib, luaossl, luaposix, luasocket, luasql-mysql, mimetypes) and a sendmail
implementation. Additionally, Ikibooru must be run behind a reverse proxy, preferably one that supports accelerated static file downloads, e.g. nginx or Apache.
Download the latest version and unextract it. Make sure your current directory is within it.
If you use Linux, run install.lua
as root/sudo and answer its self-explanatory questions. The installer will create a user called ikibooru
, reserve the home directory /home/ikibooru
and, if your system uses systemd, the installer may optionally create a service called ikibooru
.
If you do not use Linux, your only option at the moment is to replay the steps of the installer, translating it to your system as necessary.
After installation, launch the service (either via systemd or by running main.lua
as the service user).
Upon launch, login as the administrator and enter the Admin Settings page. From within, you may design your tag categories, of which Ikibooru officially supports 32. You may also create new tags and assign them to categories.
Logging in & e-mail
Ikibooru uses client-side logins with an authentication key that is regenerated on each launch. This means every restart of Ikibooru will log everyone out.
Ikibooru uses passwordless e-mail authentication, for which it will use the operating system's native sendmail
command. Make sure an implementation is installed and correctly configured, otherwise e-mails will fail to send and logging in for users will be impossible.
Accelerated static file downloads (ASFD)
If the server is to host relatively large files, it would be best to offload the I/O. How this works is that Ikibooru responds to requests with an additional header containing a filename. The response is caught by the reverse proxy, and its data is overwritten with the file's contents. The details are not standardized, so it depends on the software stack of your choice.
For example, nginx expects a filename that is accessible as an HTTP path. Because the real object data should be inaccessible from outside, the nginx configuration should employ an internal block as such:
location /private/ {
internal;
alias /home/ikibooru/ikibooru/; # Replace with your path to the Ikibooru server.
}
With this configuration, the HTTP header field may be set to X-Accel-Redirect
, and the path prefix to /private
.
Other reverse proxies may expect a real filepath, where you might directly have /home/ikibooru/ikibooru
.