Rewrite README
This commit is contained in:
parent
4adb510acd
commit
ef17fb8e8e
59
README.md
59
README.md
|
@ -1,36 +1,91 @@
|
||||||
# Focus
|
# Focus
|
||||||
|
|
||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
> Focus is in alpha development stage. Expect breaking changes in every version.
|
> Focus is in alpha development stage. It is not yet recommended for production use. Please report any bugs or issues you encounter.
|
||||||
|
|
||||||
Focus is an open-source, Kanban-style project management tool, emphasizing simplicity and efficiency. The backend is written in go and the frontend is in svelte.
|
Focus is an open-source, Kanban-style project management tool, emphasizing simplicity and efficiency. The backend is written in go and the frontend is in svelte.
|
||||||
|
|
||||||
|
The official source code repository is at [git.bhasher.com/Bhasher/focus](https://git.bhasher.com/Bhasher/focus). It runs the CI pipeline and hosts the Docker images and releases. However, a mirror is available at [github.com/Bhasher/focus](https://github.com/Bhasher/focus).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Kanban-style boards
|
||||||
|
- RESTful API
|
||||||
|
|
||||||
|
### Planned Features
|
||||||
|
|
||||||
|
- Markdown support
|
||||||
|
- Real-time collaboration
|
||||||
|
|
||||||
## KISS Principles
|
## KISS Principles
|
||||||
|
|
||||||
Adhering to [KISS principles](https://en.wikipedia.org/wiki/KISS_principle), Focus boasts a minimalist, efficient codebase, concentrating on essential features. This streamlined approach minimizes complexity, enhancing maintainability and ease of deployment across different architectures.
|
Adhering to [KISS principles](https://en.wikipedia.org/wiki/KISS_principle), Focus boasts a minimalist, efficient codebase, concentrating on essential features. This streamlined approach minimizes complexity, enhancing maintainability and ease of deployment across different architectures.
|
||||||
|
|
||||||
|
Go was chosen for the backend because of its simplicity, speed, and cross-platform support. Svelte was chosen for the frontend because it can be compiled to static HTML, CSS, and JavaScript, which can easily be served by any web server.
|
||||||
|
|
||||||
Certain features are intentionally excluded, left to specialized tools. These include:
|
Certain features are intentionally excluded, left to specialized tools. These include:
|
||||||
|
|
||||||
- Authentication
|
- Authentication
|
||||||
- HTTPS
|
- HTTPS
|
||||||
- Notifications
|
- Notifications
|
||||||
- Mobile App
|
- Mobile App
|
||||||
|
|
||||||
|
HTTPS and authentication have been successfully tested with [traefik](https://traefik.io/) and [authelia](https://www.authelia.com/) middleware but it should work with most reverse proxies and authentication middleware as it is platform-agnostic.
|
||||||
|
|
||||||
Focus offers a comprehensive RESTful API for extensions and integrations.
|
Focus offers a comprehensive RESTful API for extensions and integrations.
|
||||||
|
|
||||||
## Launching Focus in Debug Mode
|
## Installation
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
The easiest way to run Focus is with Docker. There is three images available:
|
||||||
|
|
||||||
|
- `git.bhasher.com/Bhasher/focus-frontend` for the svelte UI frontend
|
||||||
|
- `git.bhasher.com/Bhasher/focus-backend` for the go backend
|
||||||
|
- `git.bhasher.com/Bhasher/focus` for both in one image
|
||||||
|
|
||||||
|
Each image has a `latest` tag and a `vX.Y.Z` tag for each release. The `latest` tag is updated with each release.
|
||||||
|
|
||||||
|
Example `docker-compose.yaml` is available [here](docker-compose.yaml).
|
||||||
|
|
||||||
|
### Desktop App
|
||||||
|
|
||||||
|
Focus is available as a desktop app using [Tauri](https://tauri.app). Automatic releases are only available for Linux as binaries, AppImage, and DEB packages. Download the latest release from the [releases page](https://git.bhasher.com/Bhasher/focus/releases).
|
||||||
|
|
||||||
|
For other platforms, you can build the desktop app yourself using `npm run tauri build` in the `frontend` directory.
|
||||||
|
|
||||||
|
> [!CAUTION]
|
||||||
|
> The desktop app requires the backend to be running. You can specify the backend URL via the `PUBLIC_BACKEND_URL` environment variable. The default is `http://localhost:3000`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
PUBLIC_BACKEND_URL=http://localhost:3000 ./focus
|
||||||
|
```
|
||||||
|
|
||||||
|
#### AUR
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yay -S focus-desktop-bin
|
||||||
|
```
|
||||||
|
|
||||||
|
### Debug Mode
|
||||||
|
|
||||||
To run Focus locally, follow these steps:
|
To run Focus locally, follow these steps:
|
||||||
|
|
||||||
1. Clone the repository:
|
1. Clone the repository:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git clone https://git.bhasher.com/Bhasher/focus
|
git clone https://git.bhasher.com/Bhasher/focus
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Start the backend:
|
2. Start the backend:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd backend
|
cd backend
|
||||||
go run .
|
go run .
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Start the frontend:
|
3. Start the frontend:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd frontend
|
cd frontend
|
||||||
npm run dev
|
npm run dev
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
services:
|
||||||
|
focus-backend:
|
||||||
|
container_name: focus-backend
|
||||||
|
image: git.bhasher.com/bhasher/focus-backend:latest
|
||||||
|
ports:
|
||||||
|
- 3000:3000
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
|
||||||
|
focus-frontend:
|
||||||
|
container_name: focus-frontend
|
||||||
|
image: git.bhasher.com/bhasher/focus-frontend:latest
|
||||||
|
ports:
|
||||||
|
- 8080:80
|
||||||
|
environment:
|
||||||
|
- PUBLIC_BACKEND_URL=http://127.0.0.1:3000
|
Loading…
Reference in New Issue