Commit Graph

1113 Commits

Author SHA1 Message Date
Girish Ramakrishnan 65f066d391 sshfs: implement rm via ssh
this is similar to change we did for cp -r . sshfs is often flaky with lots
of concurrent operations
2025-04-09 15:48:53 +02:00
Girish Ramakrishnan 16caeb5400 Update haraka to 3.1.0 2025-03-29 08:44:50 +01:00
Girish Ramakrishnan bba9de7b76 8.3.1 changes
(cherry picked from commit f93462d88c)
2025-03-18 23:40:59 +01:00
Girish Ramakrishnan 5d88e86462 sendmail: add requiresValidCertificate
some apps really want a valid certificate to send mail and upstream
authors won't add support to skip self-signed certs or skip host name
check in cert. In our case, the issue is that we use 'mail' as the
server name despite having valid certs.

this flag will set the server name to the full mail server fqdn and
also reconfigure the app as needed when the mail server name changes.

we also set up the mail server name to resolve to internal IP because
no mail port is exposed when we are not receiving emails!
2025-03-08 13:15:53 +01:00
Girish Ramakrishnan 5342dae5b3 tokens: add ip restriction 2025-03-07 17:50:50 +01:00
Girish Ramakrishnan 78e835dd5f add the 8.3 changelog 2025-03-03 17:04:34 +01:00
Girish Ramakrishnan 3aa103e114 add changelog entry 2025-03-02 10:08:15 +01:00
Girish Ramakrishnan 3f3bb4d3b7 base image 5.0.0 2025-02-28 22:52:05 +01:00
Girish Ramakrishnan 558620cdfa deprecate ubuntu 20.04 support 2025-02-26 16:38:04 +01:00
Girish Ramakrishnan f78f6634fa ldap: automatically detect if server supports pagination 2025-02-26 12:18:32 +01:00
Girish Ramakrishnan 12794a499d domains: validate domain configs in a cron
no email notification yet, we have to rework this notifications/eventlog stuff
2025-02-17 19:11:11 +01:00
Girish Ramakrishnan cb6d531300 storage: automatically abort old multipart uploads in s3 2025-02-13 11:09:15 +01:00
Girish Ramakrishnan 42f493b2c3 docker: update to 27.5.1 2025-02-05 14:48:13 +01:00
Girish Ramakrishnan 5a766c583c node: update to 22.13.1 2025-02-05 14:48:13 +01:00
Girish Ramakrishnan 1247dbe999 8.2.4 changes 2025-02-01 09:27:59 +01:00
Girish Ramakrishnan ac0426d97d notification: update failure mail 2025-01-24 18:44:44 +01:00
Girish Ramakrishnan 837d5803c8 backups: add preserve attributes checkbox 2025-01-24 13:59:01 +01:00
Girish Ramakrishnan abb40b3ad7 mail: rebuild index 2025-01-23 17:47:49 +01:00
Girish Ramakrishnan dfd54b7b54 mail: disable ocr in tika 2025-01-23 17:23:34 +01:00
Girish Ramakrishnan 0280059c13 notifications: server reboot email 2025-01-19 11:18:49 +01:00
Girish Ramakrishnan 6fcfa6cac0 mail: add ipv6 rdns check 2025-01-08 17:28:28 +01:00
Girish Ramakrishnan 73e1e6881e docker: fix parsing of imageRef if no namespace 2025-01-03 10:10:06 +01:00
Girish Ramakrishnan 2ae05baec3 add to changelog 2025-01-02 23:53:00 +01:00
Girish Ramakrishnan 9d890e1c21 security: fix issue where '/' symlink allows admins to get ssh access
* create a volume
* create symlink to /
* now, create another volume with that symlink as host directory
2025-01-02 11:18:39 +01:00
Girish Ramakrishnan 9c7e9e25ca scheduler: respect cloudron timezone setting 2025-01-02 10:11:14 +01:00
Girish Ramakrishnan 4ffe736d46 mail: dns list crash fix 2025-01-02 09:24:51 +01:00
Girish Ramakrishnan 13d82e5a4d mail: fix issue with dkim signing 2025-01-01 18:33:04 +01:00
Girish Ramakrishnan a7f083dbd1 gandi: get token type in setup view 2025-01-01 15:43:46 +01:00
Girish Ramakrishnan c31da4eb2a add to changelog 2024-12-19 15:40:58 +01:00
Girish Ramakrishnan 68431ae357 rename functions to avoid mistakes
the remove fields are not clear enough. we sent notes by mistake to
normal users. changing the name and passing role as the argument
will avoid these errors
2024-12-19 12:24:08 +01:00
Girish Ramakrishnan 6b7edbd552 docker: fallback to quay if docker hub does not work 2024-12-14 15:22:12 +01:00
Johannes Zellner 9ed424a5d9 Add some changes 2024-12-12 11:22:15 +01:00
Girish Ramakrishnan be340580d4 various notification fixes 2024-12-11 23:58:17 +01:00
Girish Ramakrishnan 98058f600e archive: prefill secondary domain correctly 2024-12-10 19:27:19 +01:00
Girish Ramakrishnan ada878c939 hetzner: add helsinki object storage location 2024-12-09 09:44:35 +01:00
Girish Ramakrishnan bb392207ea remove global lock
Currently, the update/apptask/fullbackup/platformstart take a
global lock and cannot run in parallel. This causes situations
where when a user tries to trigger an apptask, it says "waiting for
backup to finish..." etc

The solution is to let them run in parallel. We need a lock at the
app level as app operations running in parallel would be bad (tm).
In addition, the update task needs a lock just for the update part.
We also need multi-process locks. Running tasks as processes is core
to our "kill" strategy.

Various inter process locks were explored:

* node's IPC mechanism with process.send(). But this only works for direct node.js
children. taskworker is run via sudo and the IPC does not work.

* File lock using O_EXCL. Basic ideas to create lock files. While file creation
can be done atomically, it becomes complicated to clean up lock files when
the tasks crash. We need a way to know what locks were held by the crashing task.
flock and friends are not built-into node.js

* sqlite/redis were options but introduce additional deps

* Settled on MySQL based locking. Initial plan was to have row locks
or table locks. Each row is a kind of lock. While implementing, it was found that
we need many types of locks (and not just update lock and app locks). For example,
we need locks for each task type, so that only one task type is active at a time.

* Instead of rows, we can just lock table and have a json blob in it. This hit a road
block that LOCK TABLE is per session and our db layer cannot handle this easily! i.e
when issing two db.query() it might use two different connections from the pool. We have to
expose the connection, release connection etc.

* Next idea was atomic blob update of the blob checking if old blob was same. This approach,
was finally refined into a version field.

Phew!
2024-12-07 20:41:22 +01:00
Girish Ramakrishnan a5b9ff0c3a add to changelog 2024-12-07 11:27:52 +01:00
Girish Ramakrishnan 3b9d617e37 groups: add events to eventlog 2024-12-04 11:30:30 +01:00
Girish Ramakrishnan 872705d58d oidc: use the cloudron name as provider name 2024-12-02 12:01:19 +01:00
Girish Ramakrishnan 1ecb853309 mail: attachment search 2024-11-30 17:42:26 +01:00
Girish Ramakrishnan 2a6c52800b system: filesystems in exclude are excluded from content analysis
some disks can be very slow and noisy (at home). this allows users to simply skip them.
also, applicable for large storage boxes
2024-11-30 13:08:21 +01:00
Girish Ramakrishnan 948efbaa76 docker: upgrade docker to 27.3.1 2024-11-23 20:31:44 +05:30
Girish Ramakrishnan f8cd0b5f52 add sqlite3 addon 2024-11-21 00:13:17 +05:30
Girish Ramakrishnan 18abc214a6 mail: update haraka to 3.0.5 2024-11-20 06:32:13 +05:30
Girish Ramakrishnan fd96665e97 rsync: show better error message with too many empty dirs, symlinks or executables 2024-11-18 08:11:14 +05:30
Girish Ramakrishnan 32e3665b7a more changes 2024-11-08 17:15:40 +01:00
Johannes Zellner 620ad13427 Add more changes 2024-11-01 16:03:19 +01:00
Girish Ramakrishnan ce5a2b1f0a gandi: use PAT token instead
https://api.gandi.net/docs/authentication/
2024-10-08 17:51:01 +02:00
Girish Ramakrishnan b70747de6f Add Cloudron Container Registry as option 2024-09-26 20:35:28 +02:00
Girish Ramakrishnan 0504e0423a backups: add hetzner object storage 2024-09-25 12:21:42 +02:00