TodoVault is a free and open-source web application designed to manage your to-do lists and facilitate collaboration with others.
The current stack includes (but is not limited too):
- DB: sqlite3
- ORM: SeaORM
- Server Framework: Axum
- Web App Framework(with hydration+SSR): leptos
- CSS Framework TailwindCSS
- A somewhat recent linux kernel
- glibc
These only apply to default build settings. You can compile the c runtime statically (take a look at .cargo/docker-config.toml), to get rid of the runtime dedependency on it. Older systems or different operating systems and architectures may work if you compile yourself and play around with the settings in .cargo/config.toml & Cargo.toml.
If you don't have cargo-leptos
installed you can install it with
cargo install cargo-leptos
Then run
cargo leptos build
Create an empty sqlite3 db file:
sqlite3 ./default.sqlite3 "VACUUM;"
Compile, run & watch for changes:
cargo leptos watch
cargo leptos build --release
After running a cargo leptos build --release
the minimum files needed are:
- The server binary located in
target/server/x86_64-unknown-linux-gnu/release
- The
site
directory and all files within located intarget/site
- An empty sqlite db file (
touch
ing the filename should be enough)
Copy these files to your remote server. The directory structure should be:
server
default.sqlite3
site/
Set the following enviornment variables (updating for your project as needed):
LEPTOS_OUTPUT_NAME="todo-vault"
LEPTOS_SITE_ADDR="127.0.0.1:3000"
LEPTOS_SITE_ROOT="./site"
Finally, run the server binary.
./server
TodoVault - Take back your data!
Copyright (C) <2022> <Tristan Druyen tristan[at]vault81.de>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.