main repository | mirror repository
Scriptum
To save quick notes for the future.
So i don't need to remember them...
Note
this is a for testing/personal use, is is NOT production ready!
Feel free to test it, read the source for ideas or solutions, deploy in your own lab or even use the publicly available version (see bellow).
Usage
For a fully functional demo see: scriptum.goliath.hu
Visitor
- You can browse/search all public notes by all users as a
guestwithout registration.
Registered user
- You need to login/register to be able to take notes. (top right icon)
- You can enable/disable Multi Factor Authentication on your profile page.
- Both
emailandauthenticator appcan be used for MFA. - You can set your "Viewing Mode" (top left icon)
- Private mode: (green) you only see your own notes ("single player" mode)
- Public mode: (brown) you can see all public notes from others beside your own notes ("multi player" mode)
- You can share your notes with others by marking them public.
- You can manage your own notes by pressing the "Manage My Notes" button.
- You can get back to the front page by pressing the "Main" button.
- You can search all notes with the search bar (SHIFT+CTRL+F)
- You can add a new note by pressing the "+" button on the top right or by pressing "SHIFT+CTRL+N"
- You can edit your own notes by pressing the "edit note" icon on the top right of the note header
- You can share your public note by copying the "permalink" link on the bottom right of the note
- You can see all public notes of a specified user by clicking the users name on top of a note
Admin panel
Note
the admin panel always requires Multy Factor Authentication
- Manage Users
- Manage Notes
- See fancy dashbord *(no widgets yet)
- The admin is like superman! If you revoke the admin right from your only admin user, then good luck :)
Install
-
Copy the deploy folder to your docker host, edit the compose file as needed
-
Copy the env.example into the volumes/env/ folder as ".env"
cp env.example volumes/env/.env -
Fill in the variables in the .env file
- replace all variables marked with "# replace in production"
- fill in your own values marked by "# fill in in production"
- Check the values
- Double check them to be sure
-
Create the database if it does not exist jet:
touch volumes/database/database.sqlite -
In the folder wher the compose file is run:
docker compose up -
Read logs for any error and correct them if they appear
-
If all works, stop the container and bring it up detached mode
docker compose up -d -
Use it
Note
The main page is accessible by theDOMAINvariable.
The admin panel is accessible by theADMIN_DOMAINvariable.
UseADMIN_HASHED_PASSWORDvariable instead ofADMIN_PASSWORD.
To create a hashed password use:htpasswd -n -B -C12 "" | cut -c 2-
Why
- Wanted to test sqlite Full Text Search capabilities
- Needed to replace my current "temporary" note taking app, (which started as a testing playground to test the new features that came with laravel 8) and would not run on php 8.4
- To test, how felxible and hackable filament v4+ (currently 4.1) is
- To get a deeper understanding of the inner working of filament
- To get a look inside the core of alpine.js
- To check out TipTap editor
Conclusions
- Filament is a great admin panel tool, with some degree of free customization
- It is not a general UI framework, use it for what it was intended
- Not recommending to use as a general part of a page, use as a separate admin panel.
Technologies used
- PHP 8.4+
- Composer
- Laravel 12+
- Filament v4+, (current: v4.1)
- LiveWire
- Alpine.js v3+
- tailwind
- Git
- GitHub
- Gitea
- Github workfolws
- Docker with compose
- nginx
- bash
- supervisord
- Cloudflare tunnel
- Visual Studio Code
Maintance
php artisan down- Enable maintaince modephp artisan up- Disable maintaince modephp artisan fts:rebuild- Rebuild the FTS5 index for the notes table