listo is a todo list app created to help me stay organized and not forget things!
I use listo daily and it's currently running on my home network, served from a rasperry pi.
Inspired by Microsoft Todo
Written with React, tailwindcss, Express, Node, SQLite and Docker.
- Manage multiple Lists
- Set Item Due Date
- Specify Item Quantity
- Add Notes to Items
- Fully Responsive
- Dashboard Statistics
- Dashboard overview of due Items
- Easy Deployment via Docker
listo uses npm workspaces, to install packages for the Client and the API projects, run this command at the root of the project.
npm install
The Client project uses icons which are part of the Font Awesome pro subscription. If you have a pro subscription you must configure access in NPM
If you have not configured npm with a Font Awesome Pro subscription you will get a 401 unauthorized during the npm install
command.
If you want to develop locally without a subscription, you will need to update the client to use the free packages instead of the pro packages. This will also require you to change some specific icons in use which are pro only icons.
To run the API and the Client, run this command at the root of the project
npm run dev
By default the client runs at http://localhost:3000 and the API at http://localhost:3001
Publishing listo to docker hub is done via a Github Action
The action pulls the latest code from the main branch, then uses docker buildx to build the image for the amd64 and arm64 platforms, then publishes that image to the docker hub.
Pull the latest image from the docker hub
docker pull beakerandjake/listo
Run the image
docker run \
--restart unless-stopped \
-v listo:/var/lib/listo/ \
-p 4000:3000 \
-d beakerandjake/listo
This runs the container at port 4000 on the host machine.