Extremely comfy textboard engine. https://textboard.lol

navska bc1bb5bf7a Enable blocking by IP range 9 months ago
lib bc1bb5bf7a Enable blocking by IP range 9 months ago
static 8fb236c248 Add basic JavaScript for user convenience 11 months ago
templates bc1bb5bf7a Enable blocking by IP range 9 months ago
util 3dce0627fc Fix Atom title trimming Unicode symbol apart 11 months ago
.gitignore e9cbd696b4 Initial commit 1 year ago
README.org 6ebd37a38b Add installation info 1 year ago
about.php 135ef1d065 Add about page 1 year ago
blocklist.txt d93c55302b Enable blocking by IP 9 months ago
conf.php 519e5b1481 Add purge stale threads functionality 9 months ago
data.json 35acd1a1e2 Add skeleton for posting 1 year ago
favicon.png b86ee994d5 Add favicon 1 year ago
index.php 500ce578e9 Refactor getting JSON data from file 9 months ago
post.php 519e5b1481 Add purge stale threads functionality 9 months ago
subback.php 500ce578e9 Refactor getting JSON data from file 9 months ago
thread.php 500ce578e9 Refactor getting JSON data from file 9 months ago

README.org

cudan

Yet another textboard engine.

Goal:

Kareha style textboard + some modern revamp.

Limitations:

Minimalist approach meaning as less dependencies as possible.

Disclaimer:

Modern revamp doesn't mean JavaScript bloat. Minimalist approach doesn't mean "suckless" ideology. One should not take it to any side of extreme to make a convenient web site.

Features:

  • inspired by good old Kareha:
  • thread based structure
  • thread index, thread list, thread subback
  • sage, nonoko, nonokosage
  • tripcode
  • Atom feed
  • innovation:
  • tags (defined by admin, feed can be filtered by tags)
  • subback: board stats, download threads,
  • modernized web design (e.g. dark responsive theme, max width is not 100%)

Stack:

PHP8, XHTML5, vanilla JS, local JSON file as "database".

Install

On Debian-like, you will need to install these:


  apt install php php-simplexml # mandatory
  apt install apache2 certbot python3-certbot-apache git #optional

~.htaccess~ is not recommended by Apache. Instead you want to put something like this into site config (sites-available):


<Directory /var/www/cudan>
        Options -Indexes
        AllowOverride All
        <Files conf.php>
                Require all denied
        </Files>

        <IfModule mod_rewrite.c>
                RewriteEngine On
                # Index redirect
                RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
                RewriteRule ^index\.php$ https://%{HTTP_HOST}/ [R=301,L]
        </IfModule>
</Directory>

<Directory /var/www/cudan/lib>
        Require all denied
</Directory>

<Directory /var/www/cudan/templates>
        Require all denied
</Directory>

Legend:

čudan is "strange" in Bosnian. Credit to Ayashii world.

Advertising: This project is written completely in GNU Emacs.

License: GPLv3.