They seem to make `GET` requests with `body`, which isn't allowed by the spec and causes Deno to fail. This prevents/ignores that.
It also makes the default `docker-compose.yml` "safer" by not exposing the database and container.
Finally, it removes a couple of unmaintained "one-click-deploy" buttons and simplifies documentation.
This implements a basic CardDav UI, titled "Contacts". It allows creating new contacts with a first name + last name, and editing their first and last names, main email, main phone, and notes.
You can also import and export VCF (VCARD) files.
It also allows editing the VCARD directly, for power users.
Additionally, you can choose, create, or delete address books, and if there's no address book created yet in your CardDav server (first-time setup), it'll automatically create one, titled "Contacts".
Finally, there are some dependency updates and a fix for the config not allowing disabling the `cardDav` or the `calDav` server.
Related to #56
* Add CardDav and CalDav servers
This implements the servers, but not the clients (yet). The implementation is essentially a proxy to Radicale (as a container in `docker-compose.yml`), with certain security assurances.
If you're upgrading, basically you'll need to create a new `data-radicale` directory, and everything else should just work.
This will also release v2.3.0 with those enabled by default. Tested with Thunderbird and Apple Calendar + Contacts.
To disable these, simply add the new config details and comment out or don't add the new `radicale` service from `docker-compose.yml`.
Related to #56
* Public File Sharing
This implements public file sharing (read-only) with and without passwords (#57).
It also fixes a problem with filenames including special characters like `#` not working properly (#71).
You can share a directory or a single file, by using the new share icon on the right of the directories/files, and click on it to manage an existing file share (setting a new password, or deleting the file share).
There is some other minor cleanup and other copy updates in the README.
Closes#57Fixes#71
* Hide UI elements when sharing isn't allowed
This adds Email as a multi-factor authentication method/option. It reuses the `VerificationCode` for the code generation and validation.
It also refactors the email templating for easier repurposing.
Finally, it has a small Deno version bump.
Closes#25
This means we now need to have the text and HTML content set in the code, which is arguably better.
In order to avoid allowing legacy Brevo API Key support, this will also introduce breaking changes and will be released as v2.0.0.
I took the opportunity to remove a few deprecated things (like legacy ENV-based config), upgrade PostgreSQL, and pin a specific version in `docker-compose.yml`, since I don't plan to do breaking releases anytime soon, and upgrading PostgreSQL should be fine from now on if the version is pinned.
If you were using Brevo with an API Key, they support SMTP as well, just update your config.
If you were using ENV-based config, check `bewcloud.config.sample.ts`to create your `bewcloud.config.ts`.
If you need help upgrading you PostgreSQL container, I've written a simple guide [step-by-step guide](https://news.onbrn.com/step-by-step-guide-upgrading-postgresql-docker-containers/).
This implements optional SSO via OIDC for logging in and signing up (for the first admin sign up or if sign up is allowed). The most requested feature!
Tested with Authentik and Google!
It includes a new `SimpleCache` interface (in-memory, using [`caches`](https://developer.mozilla.org/en-US/docs/Web/API/Window/caches)) for storing the state and code challenges.
Closes#13
* Add TOTP MFA Support
* Add Passkey MFA Support
It's not impossible I missed some minor cleanup, but most things make sense and there isn't a lot of obvious duplication anymore.
---------
Co-authored-by: Bruno Bernardino <me@brunobernardino.com>
* Implement a more robust Config
This moves the configuration variables from the `.env` file to a new `bewcloud.config.ts` file. Note that DB connection and secrets are still in the `.env` file.
This will allow for more reliable and easier personalized configurations, and was a requirement to start working on adding SSO (#13).
For now, `.env`-based config will still be allowed and respected (overriden by `bewcloud.config.ts`), but in the future I'll probably remove it (some major upgrade).
* Update deploy script to also copy the new config file
This refactors the data handlers into a more standard/understood model-like architecture, to prepare for a new, more robust config system.
It also fixes a problem with creating new Notes and uploading new Photos via the web interface (related to #58).
Finally, it speeds up docker builds by sending in less files, which aren't necessary or will be built anyway.
This is all in preparation to allow building #13 more robustly.
This implements the option to choose directories when uploading files via the Web UI (The most important part of #52).
When you choose a directory, its file and sub-directory structure will be maintained.
Tested with the latest Safari, Firefox, and Chrome.
Additionally, the Deno version was updated, which required some accessibility improvements as well.
Additionally:
- Make expense and budget modal "reset" once closed, saved, or deleted.
- Make manifest icons dark
- Budgets in small screens should be full-screen
- Minor code cleanup
Fixes#48
A UI based on [Budget Zen](https://github.com/BrunoBernardino/budgetzen-web) but slightly updated and adjusted for bewCloud. It also features a chart with available money and spent by budgets.
This is useful for envelope-based budgeting.
This implements generating image thumbnails on the fly via ImageMagick WASM, and tells the browser to cache them for a week, making the loading of photo directories much faster when it has many large images.
Closes#12
This is a WIP for advanced file sharing, but I won't pursue this for now since using symlinks in the file system works for me, and this is adding a ton of complexity I don't want or need right now.