Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kyoheiu/ltd
Lightweight to-do lists app with LDAP authentication.
https://github.com/kyoheiu/ltd
ldap-authentication self-hosted todo-app
Last synced: about 1 month ago
JSON representation
Lightweight to-do lists app with LDAP authentication.
- Host: GitHub
- URL: https://github.com/kyoheiu/ltd
- Owner: kyoheiu
- License: apache-2.0
- Created: 2023-06-28T21:27:46.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-18T07:57:45.000Z (11 months ago)
- Last Synced: 2024-10-25T12:58:55.938Z (3 months ago)
- Topics: ldap-authentication, self-hosted, todo-app
- Language: Svelte
- Homepage: https://ltd-cdd.pages.dev/
- Size: 456 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ltd
Lightweight self-hostable to-do lists app with LDAP authentication.
[Demo page](ltd-cdd.pages.dev/)
(No persistent data; Reload to reset the list.)![screenshot.png](screenshot.png)
## features
- Store items as single JSON file for each `ou` in `items` directory, which is mounted to the Docker container.
- No tags, no categories. Just colored symbol. Click/tap the symbol on the right to change the color of the item. (`default -> green -> yellow -> red -> default`)
- Sortable. (Only in the left-most tab)
- Built-in LDAP authentication. Items are managed based on the `ou`: For instance, if your DN is `cn=user,ou=people,dc=example,dc=com` you can manage items in the `people.json`. However, you will not be able to view items in `users.json`, which can only be accessed by those with `ou=users`.## deploy
1. Prepare empty `items` directory, and `.env` file with the following variables:```
LTD_DOMAIN=yourdomain.com
LTD_SECRET_KEY=SECRET_STRING_TO_ENCODE_JWT
LTD_NETWORK=ldap://ldap:3890
LTD_API_TOKEN=SECRET_KEY_TO_POST_ITEM_VIA_API
```2.
`sudo docker run -d -v /path/to/items:/ltd/items --env-file /path/to/.env --network="ldap_docker_network_name_if_needed" --name ltd -p 8080:8080 kyoheiudev/ltd:1.4.2`## API
To post an item via API, use HTTP `POST` request:```http
POST /api/post
Content-Type: application/json
Authorization: LTD_API_TOKEN{
"value": "new item",
"ou": "people"
}
```## tech stack
- Svelte as the frontend
- tailwindcss
- Rust as the backend
- axum
- ldap3
- JWT cookie