Simon Bruder
5b3dd34312
This architecture was started when the project still used Diesel. Now that it uses SQLx, less things are done in Rust and more are done in SQL. This commit now moves more of the query logic into SQL, which should lead to more efficient queries and less moving data around. |
||
---|---|---|
.forgejo/workflows | ||
.reuse | ||
.sqlx | ||
assets/fonts | ||
LICENSES | ||
migrations | ||
src | ||
static | ||
.envrc | ||
.gitattributes | ||
.gitignore | ||
build.rs | ||
Cargo.lock | ||
Cargo.lock.license | ||
Cargo.toml | ||
deny.toml | ||
flake.lock | ||
flake.lock.license | ||
flake.nix | ||
README.md |
li7y
li7y (pronounced lily) is a lightweight inventory management system.
Development
To start a development server, run
SUPERUSER_PASSWORD=foo SECRET_KEY=[replace me with the output of head -c 64 /dev/urandom | base64 -w0] DATABASE_URL=postgres://postgres:postgres@localhost/li7y cargo watch -x run
This sets the superuser password to foo
,
specifies a fixed secret key (to keep sessions persistent across restarts)
and configures a database at postgres://postgres:postgres@localhost/li7y
.
A development database can be set up for example with podman:
podman run --rm -it -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=li7y -p 5432:5432 postgres:15-alpine
Then you can open your browser on http://localhost:8080.
When changing SQL queries or the database schema, the SQLx cache needs to be updated with
DATABASE_URL=postgres://postgres:postgres@localhost/li7y cargo sqlx prepare
Migrations should be run automatically,
but during development the sqlx
command-line tool can be used to run and revert the migrations:
# manually apply unapplied operations
DATABASE_URL=postgres://postgres:postgres@localhost/li7y sqlx migrate run
# manually revert most recent migration
DATABASE_URL=postgres://postgres:postgres@localhost/li7y sqlx migrate revert
Licence
Most files are licensed under the terms of AGPL-3.0-or-later
,
but some files (especially vendored external files) are licensed differently.
Every file has its licence specified according to the REUSE specification.
You can use the reuse
tool to get detailed copyright and licensing information on all files.
The built software includes third-party libraries.
A detailed list of them can be generated with cargo tree
or cargo deny list -l crate
.