µchan – Fast anonymous imageboard software https://uchan.plebco.de/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Floens 1ed5c84c55 hotfix requirements and logging issue 1 month ago
data Add docker compose functionality. 3 years ago
docker Generate assets do a separate folder. 3 years ago
extra extra: manageelement is null on the board view 2 years ago
migrations Implement registration codes (secure tripcodes). 3 years ago
test Organise the models with repositories. 3 years ago
uchan hotfix requirements and logging issue 1 month ago
.dockerignore Add docker compose functionality. 3 years ago
.env.sample Add docker compose functionality. 3 years ago
.gitignore Generate assets do a separate folder. 3 years ago
Dockerfile Generate assets do a separate folder. 3 years ago
LICENSE Add readme and license 4 years ago
Makefile Add workarounds for data/ permissions 3 years ago
README.md Update README.md 1 year ago
alembic.ini Add db migrations with alembic 4 years ago
assets.sh Generate assets do a separate folder. 3 years ago
config.ini.sample Disable the varnish ip forwarding by default, document proxying. 3 years ago
docker-compose.yml Correct docker compose assets paths. 3 years ago
docker-entrypoint.sh Generate assets do a separate folder. 3 years ago
requirements hotfix requirements and logging issue 1 month ago
run.py Finish manage report converting, convert site config to repo model. 3 years ago
setup.py Add docker compose functionality. 3 years ago


µchan - anonymous imageboard software

µchan is a modern take on internet messaging board software, also known as a BBS, textboard or imageboard.

It has all the basic features you expect from a message board: boards for different topics, support for attaching images to posts and a system for moderating. µchan is anonymous and requires no account to post.

In addition to the basic features, µchan supports creating boards by everyone, and the moderation interface is extensive and clear. Moderator permissions give extra control over the capabilities of a mod. See the roadmap for a list of features that are implemented.

µchan is super light-weight. It supports users that have JavaScript disabled. You can even browse it with the original Nintento DS!

Who is µchan for?

You can use µchan to set up your own message board. The goal of µchan is to be the go-to software for messaging board software.

A quick rundown of what we support:

  • Full support for javascript-less browsers.
  • Posting
    • No account required
    • Markdown like formatting
    • Multiple files per post possible
    • Catalog
    • Captcha’s can be enabled per board.
    • Captcha verifications are remembered for a few hours
    • Tripcode support for both classic and secure tripcodes
  • Extension
    • Add-on to the base site
    • Watcher auto-updates the page when new replies are available
    • Inline image expansion
    • Quick replying
  • Moderating
    • Public registration as moderators
    • Boards are created by moderators
      • Moderators can be invited to moderate a board
      • Control over permissions of invited moderators
      • All moderation actions are logged and visible
    • Reports
      • Dedicated interface for managing reports
      • Clear reports, remove posts and ban posters
    • Bans
      • Individual ip’s or rangebans
      • Can be restricted to boards or global ban
      • Can be timed or indefinite
  • Pages
    • Dynamic creation of pages
    • Linked at the bottom of a page
    • Markdown like formatting

This isn’t a full comprehensive list of features, see the demo site for a live instance of µchan. Missing a feature? Request it by creating an issue.

What is different about µchan?

This software is meant to replace older solutions that aren’t of this age anymore. Traditional messaging boards are static: each time a user submits a message it generates new files to update the board. Changing layouts and the likes requires full rebuilds of the site.

µchan takes a modern dynamic approach, and generates pages when they are requested. On top of that is a good caching mechanism, so that responses are delivered just as fast as static files. It can handle the load when your site grows, adding new servers to take up the extra load, there is no single point of failure.

Docker setup

µchan requires multiple services to run. To ease the setup and running of µchan, a docker compose configuration was created, with a manage script.

This setup can be used in production environments. As your site grows, you can adjust the configuration as needed.

Data is stored in the ./data directory, including the database, logs and media storage.

Please report any bugs you find with this tool.


A system with support for Docker, Linux is preferred.


Install Docker, either from your package manager, or follow the instructions from the docker site.

Copy config.ini.sample to config.ini. Take a good look at the site_url, the captcha parameters and local_cdn_web_path. Copy .env.sample to .env and adjust the port uchan should be available at.

Behind a proxy

If you plan to run uchan behind a proxy, for example if you already run a nginx server, and want to put uchan under a separate domain, then you need to adjust a few parameters to make sure the correct ip is given to uchan. In the config, change proxy_fixer_num_proxies to 3. In the varnish config (located at docker/varnish/uchan.vcl) uncomment the block that adds the ip forwarding. And finally, change the port in .env to something else. Make sure that port isn’t reachable directly from the outside. After this you can configure your server to forward all requests to localhost with the specified port, as a proxy.


Run make upgrade and then make setup. The setup step will ask for a username and password for the admin account.


Run docker-compose logs <component> for logs of a component, where component is either app or worker.


To upgrade to the newest version of µchan, run git pull origin and then make upgrade. This pulls the newest version from git, runs a database upgrade and restarts the stack.