Tool for registry, interconnection and automation of Needs and Contributions with open scope.
Detailed explanations of what Lince is, how to run it and use it's ecosystem can be found in the Dark Mode Documentation/Light Mode Documentation.
Check the website lince.social for more.
Lince is a non-profit project and crowdfunding is the source of development compensation:
GitHub Sponsors | Patreon | Apoia.se
Lince tries to facilitate and automate the connection between people and resources, by transforming needs and contributions into data. The gains and losses related to the interaction, such as transportation, production and services themselves, remain the responsibility and risk of the parties involved.
To contribute, check the CONTRIBUTING.md.
Check the MIT License
Note that the dev branch is always further ahead, sometimes by a lot. But it is more unstable.
The default published binary and container target the HTTP frontend with Karma enabled. The RustFS object storage has it's settings in the configuration table, seeded when Lince starts. If your way of installing sets the bucket you can use it with rustfsadmin as initial 'username and password'.
The hosted installer is meant for macOS and glibc-based Linux systems. It installs to ~/.local/bin by default and does not configure systemd automatically.
curl -fsSL https://lince.social/install.sh | bashInside this repo, the canonical script lives at scripts/install/install.sh:
./scripts/install/install.shTo pin a specific release or install somewhere else:
curl -fsSL https://lince.social/install.sh | bash -s -- --version v0.6.1
curl -fsSL https://lince.social/install.sh | bash -s -- --bin-dir /usr/local/bin --forceCheck the releases and download the asset for your operating system. The rolling main-branch binaries live under the latest rolling-* release.
./lince --help
./lince --listen-addr 0.0.0.0:6174The published container image is public at ghcr.io/lince-social/lince. The container keeps its state under /var/lib/lince and is meant to be run with a persistent volume.
# For new Ubuntu VPS you can first run
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl enable --now docker
# To keep Lince running as a background service and bring it back after reboot, run it with `-d` and `--restart unless-stopped`:
docker run -d \
--name lince \
--restart unless-stopped \
-p 6174:6174 \
-v lince-data:/var/lib/lince \
ghcr.io/lince-social/lince:rollingThe location of Lince's configuration directory depends on your operating system:
| Platform | Value | Example |
|---|---|---|
| Linux | $XDG_CONFIG_HOME or $HOME/.config |
/home/alice/.config/lince |
| macOS | $HOME/Library/Application Support |
/Users/Alice/Library/Application Support/lince |
| Windows | {FOLDERID_RoamingAppData} |
C:\Users\Alice\AppData\Roaming\lince |
The directory and lince.toml is created automatically on first start and gives you a random auth secret. To enable auth you will need to add an enable = true, example:
[auth]
secret = "75b4c1a538af41a79b19ac17cbe03829"
enabled = trueWhen auth is enabled, Lince will require an admin user to exist. If none exists yet, run Lince once in a terminal so it can prompt you to create the initial admin user.
Accessing it from the outside world:
# If your VPS uses `ufw`, open the HTTP port:
sudo ufw allow 6174/tcp
# If you have a domain, you can use Caddy to setup a reverse proxy and make requests with HTTPS
sudo apt install -y caddy
sudo mkdir -p /etc/caddy
cat <<EOF | sudo tee /etc/caddy/Caddyfile
foo.com {
reverse_proxy 127.0.0.1:6174
}
EOF
sudo ufw allow 80
sudo ufw allow 443
sudo systemctl enable --now caddyThis is the recommended container install path for always-on usage on a VPS or personal machine. podman run can use the same image and flags.
If you don't have Cargo installed, you can install it with #link("https://www.rust-lang.org/tools/install")[Rustup].
It comes with Rust and its toolchain. If cargo isn’t in your PATH, add it to your shell configuration (~/.bashrc or ~/.zshrc)
so you don’t have to type the full path every time (i.e., ~/.cargo/bin/{program}). Run this in your terminal:
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrccargo install --locked lince
linceSupported feature shapes for cargo install:
- Default (and recommended) HTTP + Karma:
cargo install --locked lince - HTTP only:
cargo install --locked lince --no-default-features --features "http" - Karma only:
cargo install --locked lince --no-default-features --features "karma" - TUI only:
cargo install --locked lince --no-default-features --features "tui" - TUI + Karma:
cargo install --locked lince --no-default-features --features "karma,tui" - GUI only:
cargo install --locked lince --no-default-features --features "gui" - GUI + Karma:
cargo install --locked lince --no-default-features --features "karma,gui"
Rules:
http,tui, andguiare mutually exclusive frontend featureskarmacan be combined with one frontend, or used on its own
Beware! Here be dragons (bugs).
For those that want to compile the latest and have cargo installed, run:
cargo runFor the standalone desktop webview build, see Desktop Builds. It covers NixOS, generic Linux prerequisites, and Tauri release artifacts.
To run the trail browser regression mode locally, use ./scripts/other/browser-watch-tests.sh --jobs 10 to execute all browser tests in headed Chromium with browser-watch; if you want the raw command, use cargo test -p lince-web --features browser-watch browser_ -- --nocapture --test-threads=10.
The installer only installs the binary. If you want Lince to stay up after boot, use your own process supervisor.
- On Linux with
systemd, usescripts/install/install-system-service.sh. - With Docker or Podman, use the container command above with
--restart unless-stopped.
For maintainers, the release flow is:
mise release
mise publish-crates