miniweb/README.md

64 lines
1.6 KiB
Markdown

# MiniWeb
## Abstract
This is a biased little project, that tries to establish a basic infrastructure to build a webservice.
The main objective is to build a basic template one can quickly start developing a service with
The project aims to implement approaches as *simple straight-forward* over *generalized multi-purpose*.
It assumes that you clone the code, and adjust it from there, without keeping up to date.
So this is not thought of being a framework.
## Choices
### On the Backend
- `axum` as webserver framework
- `minijinja` as template renderer
- `diesel` as database framework
- `rust_embed` to embed vital static files
### On the Frontend
- `markdown.css` to provide out of the box CSS for markdown
- `hyperscript` for light weight event scripting
- `htmx` for service interaction
- `GUIKit` for a default CSS framework
## Features
### The aims of the project for now are:
- [x] Template Rendering with Hot-Reload
- [x] Static-File Serving
- [x] 404 Handler
- [ ] 500 Handler
- [ ] Media File Serving
### Future Ideas:
- Direct Markdown Sites with wikiserve
- `static-image` and `media-image` Service for automatic thumbnails
- Small Admin Layer
- User and Role Implementation
- Event-Bus link to RabbitMQ
- Logging
## Development Installation
For Dev with SQLite
- `cargo install diesel_cli --no-default-features --features postgres`
### Windows 10
Env if using MINGW64;
export PATH=$PATH:"/c/Program Files/PostgreSQL/12/bin"
export PQ_LIB_DIR="C:\Program Files\PostgreSQL\12\lib"
Install a postgres:
choco install postgresql12 --force --params '/Password:root'