2023-08-06 16:58:41 +00:00
# ![](media/icon.png) Todocolors
2023-07-30 00:26:40 +00:00
2023-08-04 19:23:05 +00:00
A self-hostable multiplayer todo app with Redis, Rust, WebSockets and Next.js.
> Warning:
>
> This project is currently a prototype.
>
> Features may be changed, break, or have security issues without anything being communicated!
>
2023-08-13 02:14:48 +00:00
> The code is a bit better now, but still may get rewritten from scratch for the next iteration of the project!
2023-08-04 19:23:05 +00:00
>
> Use and contribute at your own risk.
## Screenshots
2023-08-13 02:14:48 +00:00
![Screenshot of the application, detailing a nonsensical "Plan for conquering the world" ](media/screenshot.png 'Screenshot of the application, detailing a nonsensical "Plan for conquering the world' )
2023-09-29 07:32:42 +00:00
2023-10-12 08:09:01 +00:00
## Architecture
The application is split in two modules:
- [todored ](todored ), a backend written in [Rust] built upon [axum]
- [todoblue ](todoblue ), a frontend written in [TypeScript] built upon [Next.JS]
[Rust]: https://www.rust-lang.org/
[axum]: https://docs.rs/axum/latest/axum/
[TypeScript]: https://www.typescriptlang.org/
[Next.JS]: https://nextjs.org/
2023-09-29 07:32:42 +00:00
## Installation
2023-10-10 23:37:23 +00:00
To deploy your own instance of Todocolors, use the files contained in `todopod/` , tweaking the `network_mode` and `ports` of the `caddy` container as you see appropriate.
2023-09-29 07:32:42 +00:00
Data will be stored in the `data/redis/rdata/` directory.
### Further customization
For more customization, make changes and then build your own Docker images using the provided `Dockerfile` in `todored/` and `todoblue/` .
2023-10-12 08:09:06 +00:00
## Build
Build instructions are provided for the two modules:
- [todored ](todored/BUILD.md )
- [todoblue ](todoblue/BUILD.md )
2023-10-12 09:03:56 +00:00
## Development
Development instructions are provided for the two modules:
- [todored ](todored/DEVELOP.md )
- [todoblue ](todoblue/DEVELOP.md )
2023-10-10 23:37:23 +00:00
## License
2023-09-29 07:32:42 +00:00
2023-11-19 04:28:21 +00:00
This project is licensed under the [EUPL-1.2 ](./LICENSE.txt ).
2023-10-10 23:37:23 +00:00
## Attribution
Open source attributions are split by module, see:
2023-10-12 08:09:49 +00:00
- [todored ](todored/NOTICE.md )
- [todoblue ](todoblue/NOTICE.txt )