A textboard written in Perl https://posttext.pl
Go to file
2023-05-05 23:58:56 -04:00
assets Dockerfile, some docs and dependency 2023-04-25 15:10:31 -04:00
lib Don't escape with HTML::Restrict 2023-05-05 23:58:56 -04:00
migrations Sanitize HTML in body; enforce NOT NULL on body; template clean-up 2023-05-03 21:05:57 -04:00
script Again 2023-01-08 23:55:25 -05:00
t Create 'about' and 'rules' pages 2023-04-25 22:28:11 -04:00
templates Whoopsie 2023-05-03 23:24:30 -04:00
.gitignore
.perlcriticrc Use perlcritic theme; add is_admin() helper; clean up some things 2022-12-18 14:00:54 -05:00
AUTHORS
cpanfile Sanitize HTML in body; enforce NOT NULL on body; template clean-up 2023-05-03 21:05:57 -04:00
Dockerfile Dockerfile, some docs and dependency 2023-04-25 15:10:31 -04:00
example_post_text.conf Forget about tripcodes for now, remove some unnecessary things from config 2022-11-03 15:42:06 -04:00
LICENSE
README.md Sanitize HTML in body; enforce NOT NULL on body; template clean-up 2023-05-03 21:05:57 -04:00

Post::Text

A textboard written in Perl

Installing locally

Install dependencies:

cpanm --installdeps .

Running locally

Create a config file:

cp example_post_text.conf post_text.conf

This file right now just contains a Perl hash reference. Someday it should be YAML or XML or something better suited.

Run it in development mode:

morbo -w assets/css/ -w lib/ -w migrations/ -w t/ -w templates/ \
    script/post_text

Now try requesting http://localhost:3000

Testing

Run the tests locally (against development environment):

prove -l

Building/running container

Build

podman build -t post_text .

Tag

podman tag post_text git.n4vn33t.com/swag/post_text

Push

podman push git.n4vn33t.com/swag/post_text

Pull

podman pull git.n4vn33t.com/swag/post_text

Run

podman run -dt --rm --name post_text -p 3002:3000 post_text:latest

Generate unit file

podman generate systemd --files --new --name post_text

TODOs

  1. CSS
  2. "All new posts flagged" mode (require approval for new posts)
  3. Tests for mod-only user?
  4. Check input validation

Crazy future ideas

(Lord knows there's TODOs I could be working on...)

  1. Implement tripcodes (moving this down in priority due to complexity...)
  2. Return a text response instead of HTML if a .txt extension is requested (JSON?)
  3. Post thread via SMS (twil.io??)
  4. Option to remark without bumping?