• Ruby 83.5%
  • HTML 9.7%
  • JavaScript 3.4%
  • SCSS 1.8%
  • Ragel 0.8%
  • Other 0.8%
Find a file
2026-06-18 07:00:17 -05:00
.devcontainer dev: add more extensions to devcontainer. 2026-03-20 02:13:29 -05:00
.github github: update postgres version for test runner 2026-06-11 19:17:38 +00:00
.vscode Copilot: whitelist some test commands 2026-04-20 12:49:04 +00:00
app mod actions: fix info leak in show endpoint. 2026-06-18 07:00:17 -05:00
bin Remove .tool-versions 2026-06-08 10:53:51 +00:00
config sources: add api_host to xiaohongshu site credentials 2026-06-02 22:46:02 +03:00
db gems: upgrade good_job to 4.13.3. 2026-03-23 18:10:36 -05:00
docs dev: add basic development documentation. 2026-04-02 18:52:04 -05:00
lib dtext: add script for testing changes to dtext parser. 2026-04-20 08:57:34 -05:00
public Yachiyo's room extractor 2026-05-25 02:56:01 +09:00
script/fixes Add user_id column to upload_media_assets. 2026-03-17 14:24:07 -05:00
test mod actions: fix info leak in show endpoint. 2026-06-18 07:00:17 -05: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 Add devcontainer-lock.json to gitignore 2026-05-24 11:18:45 +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 rubocop: fix even more rubocop warnings. 2026-03-12 01:03:55 -05:00
.ruby-version docker: update ruby version to 4.0.2. 2026-04-02 18:52:05 -05:00
.stylelintrc.yml js: update stylelint to 17.6.0. 2026-03-30 20:11:10 -05:00
AGENTS.md dev: add AGENTS.md file. 2026-04-02 18:52:04 -05:00
babel.config.json js: update corejs version in babel.config.json. 2025-06-09 21:41:05 -05: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 Fix stray typo in sqs docker compose config 2026-05-24 12:40:48 +02:00
docker-compose.yaml Fix stray typo in sqs docker compose config 2026-05-24 12:40:48 +02:00
Dockerfile Remove .tool-versions 2026-06-08 10:53:51 +00:00
eslint.config.js js: update eslint to 10.1.0. 2026-03-30 20:11:10 -05:00
Gemfile gems: update to Bundler 4.0.9. 2026-04-04 20:56:54 -05:00
Gemfile.lock Update Ruby gems and NPM packages. 2026-04-07 22:06:20 -05:00
LICENSE Update LICENSE 2026-05-24 11:15:51 +00:00
package-lock.json Notes: Replace Blackletter font with Manufacturing Consent. 2026-04-11 04:08:29 +03:00
package.json Notes: Replace Blackletter font with Manufacturing Consent. 2026-04-11 04:08:29 +03: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

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.