WIP - ActixWeb multi-tenant blog and newsletter API server. Originally forked from LukeMathWalker/zero-to-production.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Rust 93.8%
Shell 0.4%
Dockerfile 0.3%
PLpgSQL 0.1%
Other 5.3%
344 3 0

Clone this repository

https://tangled.org/diegoenriquezserrano.dev/api.newslt.rs https://tangled.org/did:plc:zgkhbokihanc37nzrll6rox3/api.newslt.rs
git@tangled.org:diegoenriquezserrano.dev/api.newslt.rs git@tangled.org:did:plc:zgkhbokihanc37nzrll6rox3/api.newslt.rs

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Rust Newsletter API#

Description#

This project builds off of Zero To Production In Rust in an attempt to build a rust based API application that handles the newsletter business logic and communicates with a client via JSON-based HTTP requests.

Pre-requisites#

You'll need to install:

There are also some OS-specific requirements.

Windows#

cargo install -f cargo-binutils
rustup component add llvm-tools-preview
cargo install --version="~0.7" sqlx-cli --no-default-features --features rustls,postgres

Linux#

# Ubuntu 
sudo apt-get install lld clang libssl-dev postgresql-client
# Arch 
sudo pacman -S lld clang postgresql
cargo install --version="~0.7" sqlx-cli --no-default-features --features rustls,postgres

MacOS#

brew install michaeleisel/zld/zld
cargo install --version="~0.7" sqlx-cli --no-default-features --features rustls,postgres

How to build#

Start Postgres and Redis services via Docker compose:

docker compose up -d --remove-orphans

Launch a (migrated) Postgres database:

./scripts/init_db.sh

Launch cargo:

cargo build

You can now try with opening a browser on http://127.0.0.1:8000/login after having launch the web server with cargo run.

There is a default admin account with password everythinghastostartsomewhere. The available entrypoints are listed in src/startup.rs

How to test#

Start Postgres and Redis services via Docker compose:

docker compose up -d --remove-orphans

Launch a (migrated) Postgres database:

./scripts/init_db.sh

Launch cargo:

cargo test