• Ruby 84.4%
  • HTML 9.1%
  • JavaScript 3.2%
  • SCSS 1.7%
  • Ragel 0.8%
  • Other 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-04 22:33:07 +00:00
.devcontainer Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
.github Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
.vscode Copilot: whitelist some test commands 2026-04-20 12:49:04 +00:00
app Fix #6634: Return to first page when clicking on side tags/users/status in modqueue 2026-09-04 22:33:07 +00:00
bin Remove .tool-versions 2026-06-08 10:53:51 +00:00
config Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
db Fix broken populate.rb script 2026-08-25 22:20:36 +00:00
docs dev: add basic development documentation. 2026-04-02 18:52:04 -05:00
lib Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
public Yachiyo's room extractor 2026-05-25 02:56:01 +09:00
script/fixes Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
test Fix #6634: Return to first page when clicking on side tags/users/status in modqueue 2026-09-04 22:33:07 +00:00
.editorconfig editorconfig: set max line length to 120. 2022-11-05 19:09:56 -05:00
.env iqdb: update API client to use new version of IQDB. 2021-06-16 05:36:24 -05:00
.gitignore Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
.irbrc irb: really disable autocomplete. 2022-10-27 02:56:44 -05:00
.mailmap git: add .mailmap file. 2021-09-14 21:40:39 -05:00
.rubocop.yml Add BulkUpdateRequest::Command to rubocop Lint/MissingSuper whitelist 2026-08-18 08:34:16 +00:00
.ruby-version Update ruby to v4.0.6 2026-08-18 18:27:23 +00:00
.stylelintrc.yml js: update stylelint to 17.6.0. 2026-03-30 20:11:10 -05:00
AGENTS.md Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
babel.config.json Update babel config 2026-08-17 07:30:54 +00:00
buildkitd.toml docker: avoid building all stages in parallel. 2025-05-27 22:30:29 -05:00
CLAUDE.md dev: add AGENTS.md file. 2026-04-02 18:52:04 -05:00
codecov.yml tests: use codecov ci action instead of codecov gem. 2026-03-11 16:13:05 -05:00
config.ru config: allow running site in subdirectory. 2024-03-29 04:27:00 -05:00
docker-compose.dev.yaml Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
docker-compose.yaml docker-compose: set explicit redis version 2026-08-19 09:48:28 +02:00
Dockerfile Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
eslint.config.js Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
Gemfile Bundle: add gem ed25519 2026-09-04 13:01:55 +00:00
Gemfile.lock Bundle: add gem ed25519 2026-09-04 13:01:55 +00:00
LICENSE Update LICENSE 2026-05-24 11:15:51 +00:00
package-lock.json Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
package.json Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00
postcss.config.js css: update browserslist requirement. 2022-01-08 12:09:25 -06:00
Procfile gems: update shakapacker to 7.2.1. 2024-01-11 00:39:36 -06:00
Rakefile rubocop: fix even more rubocop warnings. 2026-03-09 02:25:17 -05:00
README.md dev: add basic development documentation. 2026-04-02 18:52:04 -05:00
renovate.json Revert "Revert production to production-2026.08.26.170424-utc" 2026-09-04 13:01:06 +00:00

Discord codecov

Quickstart

Using Github Codespaces

To launch a Danbooru instance in your browser:

  1. Create a Github account.
  2. Click Open in Github Codespaces.
  3. Click the Create new codespace button.
  4. Wait a few minutes for it to launch.

When it's done, you'll have a new Danbooru instance with a full development environment running in your browser. This way you can try out Danbooru without installing anything on your computer.

See the Codespaces section in the Docker Guide to learn more.

Using Docker

Run this to start a Danbooru instance:

sh -c "$(curl -sSL https://raw.githubusercontent.com/danbooru/danbooru/master/bin/setup)"

This will install Docker Compose and start Danbooru. When it's done, Danbooru will be running at http://localhost:3000.

Alternatively, if you already have Docker Compose installed, you can do:

git clone http://github.com/danbooru/danbooru
cd danbooru
touch .env.local config/danbooru_local_config.rb
sudo docker compose up

When you're done, you can run the following to delete everything:

sudo docker compose down --volumes # Delete all data and images in your Danbooru instance.
sudo docker image prune            # Clean up all unused Docker images.
rm -rf ~/danbooru                  # Delete the Danbooru code.

Installation

See the Docker Guide for more information on running Danbooru using Docker. This is the recommended way to run Danbooru.

Alternatively, you may use the Manual Installation Guide to install Danbooru without Docker. Manual installation is much more difficult than using Docker, and therefore is not recommended or officially supported.

For help, ask in the #technical channel on the Danbooru Discord, or in the discussions area on Github.

Dependencies

Danbooru depends on a couple of cloud services and several microservices to implement certain features.

Amazon Web Services

In the production environment, for historical reasons, Danbooru relies on Amazon AWS to send pool/post versions to a SQS queue, and on a separate archives service (available here) to extract the versions from that queue and insert them into a database.

The Docker Compose files in this repository come with a preconfigured archives service and an SQS mock using ElasticMQ, so following the docker tutorial at the start of this file is sufficient to have post/pool versions working for a new instance.

Google APIs

There is an optional background job that exports a copy of all public API data to BigQuery. This requires a Google Cloud account.

IQDB Service

IQDB integration is delegated to the IQDB service.

Reportbooru Service

The following features are delegated to the Reportbooru service:

  • Post views
  • Missed searches report
  • Popular searches report

Recommender Service

Post recommendations require the Recommender service.

Development

See docs/README.md for information on the project structure, development workflow, and how to contribute.