miniweb/README.md

2.3 KiB

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

Philosophies

  • Semantic over Mnemonic
  • As flat HTML as possible

On the Backend

  • axum as webserver framework
  • minijinja as template renderer
  • sea-orm as database framework

On the Frontend

  • markdown.css to provide out of the box CSS for markdown
  • hyperscript for light weight event scripting
  • htmx for service interaction
  • Fomantic-UI as default CSS framework (once Semantic)

Features

The aims of the project for now are:

  • Template Rendering with Hot-Reload
  • Static-File Serving
  • Logging
  • 404 Handler
  • 500 Handler
  • Media File Serving
  • Admin Site with Registry
  • Storage based tools (for files and cloud)
  • Database
  • Redis / KV Store

Future Ideas:

  • Direct Markdown Sites as wikiserve with the storage tools
  • static-image and media-image Service for automatic thumbnails
  • User and Role Implementation
  • Event-Bus link to RabbitMQ

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'

Mugshot

Mugshot of Admin

Project Structure

Root Folders

  • docker: all about docker, atm. database docker image for development.
  • docs: place for all future documentation, including this.
  • entity: crate containing database models
  • migration: crate containing database migrations
  • rear: crate containing the main library for rear
  • src: crate containing a runnable project implementing rear as a demo project
  • static: static files used by rear
  • strinto: experimental crate for an idea.
  • templates: all templates for rear-admiral.