Frogtab is a lightweight task manager that helps you stay focused on today's priorities.
Frogtab runs in your browser and stores your data in localStorage
. You can export your data at any time. If your browser supports showSaveFilePicker()
, you can also enable automatic backups.
Frogtab can't sync your data between devices. However, if you register your main device, the frogtab.com server creates a personal link that you can use to send tasks to your main device.
In this README:
Frogtab Local is a version of frogtab.com that you can run on your computer. With Frogab Local, you can:
- Use Frogtab offline
- Automatically back up your data in any browser
- Send tasks to Frogtab via a terminal
Install the Linux snap or install the Python package.
-
When you register your device, Frogtab generates a PGP key pair in your browser. Your device then sends the public key to the server. The private key never leaves your device.
See
register()
in help.html. -
The server generates a user ID and an API key for your device:
- User ID - The public "address" of your device
- API key - A non-public "password" for your device
See post-create-user.php.
Your personal link is
https://frogtab.com/send#{id}
, where{id}
is the user ID. -
When you use your personal link to send a task, Frogtab first encrypts the task using the public key from step 1. Frogtab then sends the encrypted task to the server.
See
encryptAndSend()
in send.html. -
The server queues the encrypted task.
See post-add-message.php.
-
Your device periodically checks for encrypted tasks.
The server requires the API key from step 2. This ensures that other devices cannot check for encrypted tasks. If there are encrypted tasks in the queue, your device downloads the encrypted tasks.
The server clears the queue as soon as your device has downloaded the encrypted tasks.
-
Your device decrypts the tasks using the private key from step 1.
See
verifyUserAndAppendMessages()
in main.js.
You'll need an Apache server with PHP and Composer. Apache must have the following modules enabled:
- mod_mime
- mod_rewrite
- mod_headers
To install Frogtab on your own server:
-
Open a shell on your server, then navigate to a directory that is accessible to PHP scripts but not accessible via the web.
-
Run the following commands:
git clone https://github.com/dwilding/frogtab.git cd frogtab ./build_server.sh
-
Copy the contents of frogtab/server/public to a directory that is accessible via the web. Make sure that the .htaccess files in frogtab/server/public and frogtab/server/public/open are copied.
Frogtab is ready!
To use Frogtab, open your browser, then navigate to the web-accessible directory from step 3.
The first time you register a device, Frogtab creates a SQLite database called frogtab.db in the directory from step 1. This database stores device credentials and the queue of encrypted tasks.
Frogtab is licensed under the MIT License. For details, see LICENSE.
Frogtab uses OpenPGP.js for PGP encryption. The source code of OpenPGP.js is available at https://github.com/openpgpjs/openpgpjs. OpenPGP.js is licensed under the GNU Lesser General Public License. For details, see LICENSE_openpgp.