crablog/README.md
2024-08-18 01:17:27 +02:00

2.3 KiB

Crablog

Pure rust. Built with actix, diesel, tera, serde and sqlite3.

Run instructions using docker

  1. Clone this repository
  2. Install diesel and create a database
cd ./site
cargo install diesel_cli --no-default-features --features "sqlite"
diesel setup --database-url ../content/db.sqlite3
diesel migration run --database-url ../content/db.sqlite3
  1. Set up your configuration .env (see below)
  2. Pull the image (or build from source) and run the docker container
docker-compose up -d

Configuration environment file

All configuration options are defined in .env which should be placed in the path where crablog is run. An example configuration is provided:

.env

CL_USERNAME=yourusername
CL_EMAIL=me@mydomain.tld # optional
CL_BIND_PORT=8000 # optional
CL_SUBMIT_TOKEN=Submit!123 # required, token needed for submitting
CL_GITHUB_ACCOUNT=yourusername # optional
CL_TWITTER_ACCOUNT=yourusername # optional
CL_MASTODON_ACCOUNT=yourusername@mastodon.social # optional
CL_REDDIT_ACCOUNT=yourusername # optional
CL_DISCORD_ACCOUNT=yourusername # optional

# only needed when not using a docker container
CL_ROOT_PATH=/path/to/template/directory/and/sqliteDB

Routes

Route Description
/ shows the last 5 posts
/id/<id> shows a single post by id
/all shows all posts
/submit create posts using a web form
/edit> post selection page for editing
/edit/<id> edit, delete or hide posts
/about information about this blog, social media accounts

API Routes

Method Route Description
GET /api/blog/posts returns all posts as json
POST /api/blog/create creates a post
POST /api/blog/posts/edit/{post_id} edits a post
POST /api/blog/posts/hide/{post_id} hides a post
POST /api/blog/posts/delete/{post_id} deletes a post

Regenerate Migrations from Schema:

diesel migration generate --diff-schema=./src/db/schema.rs create_posts