#image-board #web #bbs #engine #front-end

app acsim

Basic imageboard engine written in actix-web

1 unstable release

0.10.0 Jan 5, 2024

#535 in Database interfaces

Custom license and GPL-3.0-or-later

50KB
1K SLoC

acsim - Asynchronous Simple Imageboard

Basic imageboard engine written in rust and actix-web.

Features:

  • Written in Rust (blazingly fast btw) and completely JS-free by default
  • Website frontend is completely data-driven; you can change it in any way (as long as you keep handlebars templates)
  • Supports both SQLite and Postgres databases

The engine is still in active development. Expect some bugs, missing features and drastic changes in design.

Installation

Docker container

A Docker image is available for ACSIM, although it doesn't have persistent storage (yet). You can use it to test ACSIM or quickly spin up an instance. Run:

# docker run --net=host jbruws/acsim:0.10

Manual installation

  1. Install the dependencies:

    • cargo
    • git
    • sqlite3 (if you will use SQLite database)
    • postgresql (if you will use Postgres database)
    • libssl-dev
    • libmagic-dev
  2. Clone the repository and enter it:

    git clone https://github.com/jbruws/acsim.git

    cd acsim

  3. Once you're in the acsim directory, run the setup.sh script, either with SQLITE argument and no username or POSTGRES argument and username you wish to use to connect to the database. Here's examples:

    • ./setup.sh POSTGRES postgres

    • ./setup.sh SQLITE

    View .env and config.yaml files and check them for any errors.

  4. Finally, run the program:

    cargo run

Once the compilation finishes, application logs will start appearing in the console and in acsim.log file. Navigate to 127.0.0.1:8080 in your browser, and you should be greeted with ACSIM's home page. By default, the server will be accessible with any IP (0.0.0.0), as long as the port 8080 is open.

Special Thanks

@ZueffC - testing, coding advice

@CppCoder1, @Befrimon - testing

Dependencies

~70MB
~1.5M SLoC