# 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 ```bash 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 ``` 3. Set up your configuration .env (see below) 4. Pull the image (or build from source) and run the docker container ```bash 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/` | shows a single post by id | | `/all` | shows all posts | | `/submit` | create posts using a web form | | `/edit>` | post selection page for editing | | `/edit/` | 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`