piga icon indicating copy to clipboard operation
piga copied to clipboard

List editor for power users, backed by a self-hosted server

Task Keeper

CI Status

This project aims to be a list editor for power users.

Example use cases:

  • A TODO list
  • A list of meals and ingredients
  • Notes from a meeting
  • A list of things to remember

Features

(Note: Some are not ready yet)

  • Document editing:
    • Productivity shortcuts for actions such as 'remove task', 'swap task down', 'open link', 'convert selection to lower case', ...
    • Ability to collapse all indented tasks beneath selected task
    • Tasks can have tags
    • Ability to search in all documents
    • Taks can be postponed until a later date
  • Many documents:
    • Easy switching between documents
    • Ability to archive documents and easily search for documents
  • Works offline (via PWA)
  • Dedicated mobile version

Screenshot

screenshot

Installation from release

  • Download the latest release
  • Unpack the archive
  • Open conf/application.conf in the unpacked folder:
    • Configure a database. The easiest way is to set up a MariaDB server locally, create an empty database called facto and configure it as follows:
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/piga?user=mysqluser&password=mysqlpassword"
db.default.slick.profile = "slick.jdbc.MySQLProfile$"
  • Choose secret values for play.http.secret.key and app.setup.defaultPassword

  • Open a terminal in the unpacked folder

  • Run following commands to get the app running:

    # Create database tables
    bin/server -DdropAndCreateNewDb
    
    # Create admin user
    bin/server -DcreateAdminUser
    
    # Run application
    bin/server
    
  • Browse to http://<ip_address>:9000/app/useradministration (username: "admin", password: "changeme")

Installation with Docker

The following commands will launch a new server alongside a database in Docker containers:

# Get the docker-compose.yml file
wget https://raw.githubusercontent.com/nymanjens/piga/master/docker-compose.yml

# Choose a unique random string here of sufficient length
export APPLICATION_SECRET="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"

# Create an empty database with a single admin user
docker-compose run web bin/server -DdropAndCreateNewDb
docker-compose run web bin/server -DcreateAdminUser

# Bring up the server
docker-compose up

When done, browse to http://<ip_address>:9000/app/useradministration (username: "admin", password: "changeme")

Configuration

  • conf/application.conf:
    Setup and configure a database here.
  • Add users:
    A default user is created with the -DcreateAdminUser flag (username: admin, password: changeme). This account can create new users.