Skip to content

Self-hosted application for completing daily goals & to-dos

License

Notifications You must be signed in to change notification settings

drewbitt/Someplice

Repository files navigation


Logo

Someplice

🎯📈 Someplice is a self-hosted application that helps you achieve your goals. Built with SvelteKit and SQLite, it lets you set daily intentions and track your progress effectively.
Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Contributing
  4. License

About The Project

  • 🎯 Set and manage multiple goals
  • 📅 Set daily intentions for each goal
  • ✅ Mark intentions as complete
  • 🧐 Review and reflect on your past intentions
  • ☀️/🌙 Toggle between light and dark mode

(back to top)

Built With

(back to top)

Getting Started

There are three ways to install Someplice: with pnpm, nix, or Docker. Choose the method that best suits your needs.

Installation

Option 1: pnpm

  1. Clone the repository
  2. Install dependencies
cd Someplice
pnpm install
  1. Run database migrations
pnpm run db:migrate
  1. Start the application
pnpm run dev

Option 2: Devbox/nix

  1. Ensure you have devbox installed.
  2. Clone the repository
  3. Run devbox install followed by devbox shell in the root of the repository. This will open a shell with all the dependencies installed (node and pnpm)
  4. Follow pnpm instructions above to install dependencies, run migrations, and start the application

Option 3: Docker

The Docker public image build is WIP. For now, you can build the image locally:

docker build -t someplice .

Then run the container. Replace /host/dataFolder with the absolute path to the folder where you want to store the database.

docker run -v /host/dataFolder:/app/data -p 3000:3000 someplice:latest sh -c "pnpm run db:migrate && node build/index.js"

Running the db migrations is only required the first time you run the container. After that, you can just run:

docker run -v /host/dataFolder:/app/data -p 3000:3000 someplice:latest

(back to top)

Contributing

When making database changes, use kysely-codegen to generate the TypeScript types for the database. Run pnpm run db:codegen to generate the types. To set up, create an .env file with your database connection string:

# SQLite
DATABASE_URL=YOUR_ABSOLUTE_PATH_TO/Someplice/src/lib/db/

(back to top)