Commit graph

37 commits

Author SHA1 Message Date
Bruno Bernardino
c26cae625e
Remove fresh
This implements a huge change, where Fresh is removed as a framework and serving files, allowing more control over importing, bundling, and serving files and components.

The biggest challenge was to continue making sure that there weren't too many places to look into for import versions, and `PasswordlessPasskeyLogin.tsx` became a prototype in migrating a component to fully SSR, no need for frontend parsing (via Babel) or bundling (via a custom-script, downloading frontend dependencies from esm.sh). Still, there are too many components to migrate like that, and it's all working, so I likely won't even attempt it unless there's some bug, new feature, or security vulnerability to address that warrants a rewrite of those.

This also updates all dependencies (except `@libs/xml` because that still causes some breaking in DAV endpoints), including Deno!

All other advantages can be seen in the related issues, and the breaking change this (v4.0.0) introduces is related simply to `config.email.tlsMode` (which had a deprecation warning throughout v3), and because, while I tested many things exhaustively, it's not impossible something broke that I didn't see.

Closes #141
Closes #132
2026-02-20 10:54:31 +00:00
Bruno Bernardino
fb2a7d5cce
Implement basic directory sizes using du
Some checks failed
Build Docker Image / build-and-push (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
Run Tests / test (push) Has been cancelled
Closes #112
2026-01-18 16:59:53 +00:00
Bruno Bernardino
bfd4851098
Also fix calendar event imports with multiline fields
Fixes #139
2026-01-02 10:40:40 +00:00
Bruno Bernardino
3ffd3328a1
Fix vCard importing with multiline fields.
Fixes #139
2026-01-02 10:21:49 +00:00
Bruno Bernardino
b2dda31c51
Revert xml lib, to avoid unexpected issues 2025-10-17 20:52:07 +01:00
Bruno Bernardino
6280228759
Fix XML parsing for WebDav
This was a regression caused by the `@libs/xml` upgrade in v2.6.0
2025-10-17 20:41:01 +01:00
Bruno Bernardino
c81ef77370
Fix linting 2025-10-01 14:20:51 +01:00
Tilman
adde693585
Merge pull request #103 from medallyon/bugfix/101-ignore-case-for-sorting
Make file and directory sorting case-insensitive
2025-10-01 14:16:58 +01:00
Bruno Bernardino
6734e9557b
Update all dependencies
This takes part of the work being done in #96 that was reverted but still useful.

Note Tailwind and Fresh weren't upgraded because there's no security vulnerability in either, and I have found the new versions to be worse in performance. Thos will likely stay at those fixed versions going forward.
2025-09-27 19:39:09 +01:00
Bruno Bernardino
49dbc724c8
Fix creating and deleting calendars
This fixes the creation and deletion of calendars to include a color and the proper chosen name.
2025-09-06 19:17:48 +01:00
Bruno Bernardino
15dcc8803d
Basic CalDav UI (Calendar)
This implements a basic CalDav UI, titled "Calendar". It allows creating new calendars and events with a start and end date, URL, location, and description.

You can also import and export ICS (VCALENDAR + VEVENT) files.

It allows editing the ICS directly, for power users.

Additionally, you can hide/display events from certain calendars, change their names and their colors. If there's no calendar created yet in your CalDav server (first-time setup), it'll automatically create one, titled "Calendar".

You can also change the display timezone for the calendar from the settings.

Finally, there's some minor documentation fixes and some other minor tweaks.

Closes #56
Closes #89
2025-09-06 12:46:13 +01:00
Bruno Bernardino
289f34fe8e
Basic CardDav UI (Contacts)
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
2025-08-10 07:48:16 +01:00
Bruno Bernardino
c7d6b8077b
Enable Email as a MFA method/option (#68)
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
2025-06-11 15:53:39 +01:00
Bruno Bernardino
aa18dcdb4e
Implement (optional) SSO via OIDC (OpenID Connect) (#64)
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
2025-06-05 18:10:40 +01:00
0xGingi
455a7201e9
Add Optional 2FA Support (#61)
* 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>
2025-05-29 17:30:28 +01:00
Bruno Bernardino
e337859a22
Implement a more robust Config (#60)
* 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
2025-05-25 15:48:53 +01:00
Prefex
5467fb3533
Custom Title, Description and Help Email (#54)
* Add configuration of Help email, Title, Description

* Format configuration changes

* Use fragments for help sections

* Revert cleanup in misc.ts
2025-03-20 15:18:09 +00:00
Bruno Bernardino
df332802c0
UX improvements for mobile expense input 2025-03-03 09:39:46 +00:00
Bruno Bernardino
874ab006f9
Add Expenses app
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.
2025-02-26 17:43:53 +00:00
Bruno Bernardino
e08188b58b
Minor UX and code improvements 2024-12-06 06:08:15 +00:00
Raphencoder
5e5448a9e9 add tests to check the local ipv4 addresses 2024-12-05 22:06:53 +01:00
Raphencoder
33ecce353e Update to authorize local ipv4 ip addresses
edit way to work in local

try false in secure

add log

fix, update funct isRunningLoccaly

fix fmt

refacto
2024-12-05 22:06:43 +01:00
Bruno Bernardino
635ca90de0
Add Photos UI 2024-04-27 08:12:44 +01:00
Bruno Bernardino
2920de90b6
Fix news cron locks and fetching to work more than once per day. 2024-04-19 12:19:26 +01:00
Bruno Bernardino
5229e196b4
Improve WebDav support to include file size and modified time 2024-04-08 16:01:59 +01:00
Bruno Bernardino
265c52a7e5
Add WebDav server, fully functional!
Some more code cleanup.
2024-04-06 19:43:34 +01:00
Bruno Bernardino
4e5fdd569a
Files CRUD.
Remove Contacts and Calendar + CardDav and CalDav.
2024-04-03 14:02:04 +01:00
Bruno Bernardino
c4788761d2
Support CalDav 2024-03-31 21:21:30 +01:00
Bruno Bernardino
321341a2fb
Support automatically creating recurring events
Also implement locks for tasks that can have unintended side-effects if ran simultaneously.

Other minor UI tweaks.
2024-03-31 13:19:13 +01:00
Bruno Bernardino
d3a6f60d81
Minor code cleanup 2024-03-30 18:10:06 +00:00
Bruno Bernardino
87b94e9eec
View, Import, and Export recurrence! 2024-03-30 18:08:19 +00:00
Bruno Bernardino
1a6cb96965
View, Import, and Export reminders! 2024-03-30 12:54:49 +00:00
Bruno Bernardino
0ffe4e03f1
View, Import, and Export attendees! 2024-03-30 08:18:53 +00:00
Bruno Bernardino
abd1fdee62
Support editing and exporting transparency 2024-03-30 07:05:28 +00:00
Bruno Bernardino
a47ef552e8
Fix transparency import info 2024-03-29 20:58:41 +00:00
Bruno Bernardino
a1d2088c5c
Tweak calendar colors and support transparency in import 2024-03-29 20:55:54 +00:00
Bruno Bernardino
6b3dc4f256
Show transparency in calendar view
Also separate utils.ts file which was getting too big, and add a POST test
2024-03-29 20:37:47 +00:00