# prologic-todo
**Repository Path**: lazycatcloud/prologic-todo
## Basic Information
- **Project Name**: prologic-todo
- **Description**: todo is a simple self-hosted todo manager https://todo.mills.io/
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://git.mills.io/prologic/todo
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-11-30
- **Last Updated**: 2024-06-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# todo
[](https://cloud.drone.io/prologic/todo)
[](https://godoc.org/git.mills.io/prologic/todo)
[](https://goreportcard.com/report/git.mills.io/prologic/todo)
[](https://codecov.io/gh/prologic/todo)
[](https://sourcegraph.com/git.mills.io/prologic/msgbus?badge)
[](https://microbadger.com/images/prologic/todo)
[](https://microbadger.com/images/prologic/todo)
todo is a self-hosted todo web app that lets you keep track of your todos in a easy and minimal way. 📝
## Screenshots
_Nord Theme_
_Dracula Theme_
See all themes in the "Preset Color Themes" section below
## Demo
There is also a public demo instance avilable at: [https://todo.mills.io](https://todo.mills.io)
## Deployment
### Docker Compose
`docker-compose.yml`
```
version: '3'
services:
todo:
image: prologic/todo
container_name: todo
restart: always
ports:
- 8000:8000
volumes:
- todo_db:/usr/local/go/src/todo/todo.db
volumes:
todo_db:
```
This file:
* Creates the `todo` container using the latest image from `prologic/todo` in [Docker Hub](https://hub.docker.com/r/prologic/todo).
* Binds port 8000 on your host machine to port 8000 in the container (you may change the host port to whatever you wish).
* Volume mounts the database path, saving your todo items so that your todo list will be saved in between container restarts.
Bring the container up with:
```
$ docker-compose up
```
### Docker
Alternatively, you can run the container without docker-compose:
```
$ docker run -p 8000:8000 -v todo_db:/usr/local/go/src/todo/todo.db prologic/todo
```
## Configuration
### Preset Color Themes
todo comes with 12 different color themes based on some of the most popular programming themes:
```
ayu, dracula, gruvbox-dark, gruvbox-light, lucario, monokai, nord, solarized-dark, solarized-light, tomorrow, tomorrow-night, zenburn
```
You can set the theme by passing the `THEME` environment variable to the docker container, for example:
`docker-compose.yml`
```
version: '3'
services:
todo:
image: prologic/todo
container_name: todo
environment:
THEME: ayu
restart: always
ports:
- 8000:8000
volumes:
- todo_db:/usr/local/go/src/todo/todo.db
volumes:
todo_db:
```
#### Screenshots
You can find screenshots and the CSS of all the preset color themes in both mobile and desktop views on the [Wiki Page](https://git.mills.io/prologic/todo/wiki/Color-Themes).
### Custom Color Themes
You can set your own color theme by passing in the appropriate environment variables.
Set the `THEME` environment variable to `custom`, and the six following environment variables to the colors of your choice (in hex format, omitting the `#`):
| Environment Variable | Description |
|--------------------------------|-----------------------------------|
| PAGEBACKGROUND | Web page background |
| INPUTBACKGROUND | Text boxes and buttons background |
| FOREGROUND | Input and item text |
| CHECK | Check mark on button |
| X | X mark on button |
| LABEL | Heading text and button hover |
An example configuration:
`docker-compose.yml`
```
version: '3'
services:
todo:
image: prologic/todo
container_name: todo
environment:
THEME: custom
PAGEBACKGROUND: 282a36
INPUTBACKGROUND: 44475a
FOREGROUND: f8f8f2
CHECK: 50fa7b
X: ff5555
LABEL: ffffff
restart: always
ports:
- 8000:8000
volumes:
- todo_db:/usr/local/go/src/todo/todo.db
volumes:
todo_db:
```
### Additional Configuration
| Environment Variable | Description | Default Value |
|--------------------------------|--------------------------------------------------|---------------|
| MAXITEMS | Maximum number of items allowed in the todo list | 100 |
| MAXTITLELENGTH | Maximum length of a todo list item | 100 |
## Development / Non-Dockerized Deploy
You can quickly run a todo instance from source using the Makefile:
```
$ git clone https://git.mills.io/prologic/todo.git
$ cd todo
$ make
```
Then todo will be running at: http://localhost:8000
By default todo stores todos in `todo.db` in the local directory.
This can be configured with the `-dbpath=/path/to/todo.db` option.
You can pass in the other environment variables using the flag notation as well, for example:
```
$ todo -maxitems=20 -maxtitlelength=50 -theme=nord
```
## License
MIT
Icon made by [Smashicons](https://smashicons.com/) from [flaticon.com](https://flaticon.com)