Listaway
Task Management & To-do Lists
About this project

This self-hostable application allows authenticated users to publish one or more lists of items publicly. These lists can either be for tracking purposes (e.g. a list of books to read, a list of components in a custom computer build, a list of favorite local places, etc.) or for wishlist purposes (e.g. a gift wishlist, a list of tasks you need help with, etc.). The items can be freeform text or a URL to details about the item. Shared lists incorporate a random string in the URL to give a little protection against guessing (thus allowing you to share the link and access it without requiring authentication).

Feature inventory
- Application access
- Authentication / Authorization (Email/Password + OIDC/OAuth2)
- Password reset
- Group administration (manage group of users, including creation)
- Instance administration (manage all groups and all users)
- List management
- CRUD lists
- Optional list description string
- CRUD items (Name, optional URL, optional Priority, optional Notes)
- Table sortable by Name and Priority
- Opt-in public read-only access with randomized URL
- Collection management
- CRUD collections (group of lists)
- Optional collection description string
- Opt-in public read-only access with randomized URL
Quick start
- Configure your PostgresDB instance
--connect to your postgres server with an admin role
CREATE ROLE listaway LOGIN PASSWORD 'password';
CREATE DATABASE listaway;
GRANT CONNECT ON DATABASE listaway TO listaway;
--connect to your new listaway database with an admin role
CREATE SCHEMA listaway;
GRANT CREATE, USAGE ON SCHEMA listaway to listaway;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA listaway TO listaway;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA listaway TO listaway;
- Make a
docker-compose.yml
file
services:
listaway:
image: "ghcr.io/jeffrpowell/listaway:v1.15.0"
ports:
- "8080:8080"
env_file:
- .env
- Make a
.env
file
# Required configuration
LISTAWAY_AUTH_KEY=[random alphanumeric 128-character string]
PORT=8080
POSTGRES_USER=listaway
POSTGRES_PASSWORD=password
POSTGRES_HOST=[pghost]
POSTGRES_DATABASE=listaway
# Optional SMTP configuration for password reset emails (defaults will cause email bodies to be logged instead of sent outbound)
# SMTP_HOST=smtp.example.com # default ""
# SMTP_PORT=587 # typically 25, 465, or 587, default 587
# SMTP_USER=username # default ""
# SMTP_PASSWORD=password # default ""
# SMTP_FROM=noreply@example.com # default "noreply@listaway.dev"
# SMTP_SECURE=true # default true
# APP_URL=https://listaway.your-domain.com # for reset links, default "http://localhost:8080"
# Optional OIDC/OAuth2 configuration for sing
Technologies & License
MIT
Docker