Quick start
Perfice can run completely without a backend, since it's built as a local-first web application. However, you might want to run a backend if you're interested in the following:
- Sync: Synchronizing your data between devices (such as your phone)
- Integrations: Automatically fetching data from remote providers like Fitbit, Todoist, etc
Running the client
The easiest way to run the webapp is by using Docker, this will run a bundled version of Perfice with nginx.
A Docker compose file exists which you can use to get up and running quickly.
Simply download the file into your current directory and run docker compose up
Running the backend
In order to run the backend you must have a MongoDB database running.
Similar to the client I've created a Docker compose file. Here you can configure the services before running them, such as setting the MONGO_URL
and ENCRYPTION_KEY
environment variables.
Setting SENTRY_DSN
is not necessary unless you want error reporting with Sentry.
Architecture
The backend is built with a microservice architecture, it is split into gateway
, auth
, sync
and integration
modules. The microservices communicate mainly through gRPC but also use Kafka for publishing events that multiple services might consume.