Compare commits

..

9756 Commits

Author SHA1 Message Date
Girish Ramakrishnan 497b3016c0 7.7.2 changes 2024-03-27 10:12:37 +01:00
Johannes Zellner fe9bd52b04 frontend: make uploads cancellable 2024-03-26 09:54:59 +01:00
Johannes Zellner 0705c77333 Frontend: update pankow for pretty fileupload size 2024-03-25 14:56:07 +01:00
Girish Ramakrishnan b66e77a2d8 Fix crash when system has no swap 2024-03-22 10:39:35 +01:00
Girish Ramakrishnan 4b4c8d8052 7.7.2 changes 2024-03-21 19:11:57 +01:00
Girish Ramakrishnan 4ee56782ba move syslog.js to top level 2024-03-21 19:09:51 +01:00
Girish Ramakrishnan 104997d77c syslog: change it to unix domain socket
docker is using a extra udp port for every container. when there is
a lot of containers, a lot of random udp ports get used up. this causes
problems when installing apps that require contiguous port ranges
2024-03-21 18:59:08 +01:00
Girish Ramakrishnan 8e07b3c96d remove unused variable 2024-03-21 17:11:17 +01:00
Johannes Zellner 4e618540f8 dashboard: preserve app link paths 2024-03-18 11:40:17 +01:00
Girish Ramakrishnan 49941a34b9 backups: deleted apps must also be displayed in contents 2024-03-14 16:14:50 +01:00
Johannes Zellner 771b797a23 frontend: update dependencies to fix filemanager empty folder content layout 2024-03-13 11:42:47 +01:00
Girish Ramakrishnan d09915bf6e scheduler: typo
(cherry picked from commit 09e00e6d58)
2024-03-12 18:06:24 +01:00
Johannes Zellner 264c94ff34 dashboard: remove bootstrap slider component 2024-03-12 17:33:38 +01:00
Johannes Zellner a90df99331 dashboard: migrate rsync concurrency settings to native range slider 2024-03-12 17:31:07 +01:00
Johannes Zellner 78f0d61627 dashboard: make backup upload part size steps explicit with native widget 2024-03-12 17:09:35 +01:00
Johannes Zellner 8c106b3435 dashboard: replace old slider with native widget 2024-03-12 16:44:08 +01:00
Johannes Zellner 42555c7231 dashboard: use native slider for mailbox storage quota 2024-03-12 15:43:08 +01:00
Johannes Zellner ab035a2afe dashboard: use native slider for mail size 2024-03-12 15:35:20 +01:00
Johannes Zellner 3a30eed3cd dashboard: remove commented slider 2024-03-12 15:29:30 +01:00
Johannes Zellner 4cb390374b dashboard: use native range slider for services 2024-03-12 15:28:47 +01:00
Girish Ramakrishnan 50179dd7eb 7.7.1 changes 2024-03-12 11:28:27 +01:00
Girish Ramakrishnan 2956c3360c postgresql: fix whitelist ext loading 2024-03-12 11:27:42 +01:00
Girish Ramakrishnan c634bdbd34 scheduler: do not create jobs of suspended apps
otherwise, when an app is uninstalling, it creates the docker containers
by calling getDynamicEnvironment. This ends up adding addonConfigs for the
docker addon and prevents the app from getting uninstalled.
2024-03-12 00:55:06 +01:00
Johannes Zellner 1892c0cd80 dashboard: use native slider element for app memory and cpu 2024-03-11 21:36:18 +01:00
Johannes Zellner 63b395982c dashboard: use less gulp processing for css turns out it actually made the files much larger 2024-03-11 19:03:42 +01:00
Johannes Zellner d50c8539b2 dashboard: update dependencies 2024-03-11 18:49:30 +01:00
Girish Ramakrishnan 90c8348c9c postgresql: fix upgrade route 2024-03-11 15:55:08 +01:00
Girish Ramakrishnan 1426cbec81 postgresql: fix for vectors update
we used:
psql -Uroot  --dbname=postgres --command="ALTER SYSTEM SET shared_preload_libraries = 'vectors.so'"

the above wrote to the auto config file and required a reboot. this resulted in
2024-03-11 09:39:13.250 UTC [34] ERROR:  pgvecto.rs: pgvecto.rs must be loaded via shared_preload_libraries.
	ADVICE: If you encounter this error for your first use of pgvecto.rs, please read `https://docs.pgvecto.rs/getting-started/installation.html`. You should edit `shared_preload_libraries` in `postgresql.conf` to include `vectors.so`, or simply run the command `psql -U postgres -c 'ALTER SYSTEM SET shared_preload_libraries = "vectors.so"'`.
2024-03-11 09:39:13.250 UTC [34] STATEMENT:  CREATE EXTENSION vectors
ERROR:  pgvecto.rs: pgvecto.rs must be loaded via shared_preload_libraries.
ADVICE: If you encounter this error for your first use of pgvecto.rs, please read `https://docs.pgvecto.rs/getting-started/installation.html`. You should edit `shared_preload_libraries` in `postgresql.conf` to include `vectors.so`, or simply run the command `psql -U postgres -c 'ALTER SYSTEM SET shared_preload_libraries = "vectors.so"'`.
2024-03-11 13:32:25 +01:00
Girish Ramakrishnan 7047915995 typo 2024-03-10 19:56:36 +01:00
Girish Ramakrishnan 49b514054f fixup mail fk constraints
it's possible previous releases bad a bug that they did not clear the mail domain
fields properly. this migration fixes it up.
2024-03-10 12:09:20 +01:00
Johannes Zellner bf27374dcc Fix postgresaddon migration for pgvectors 2024-03-07 13:59:30 +01:00
Johannes Zellner 3de1c6e499 Use postgres addon with immich hacks exposed as service api 2024-03-06 19:08:03 +01:00
Johannes Zellner d77285f2c4 frontend: update dependencies 2024-03-06 14:48:38 +01:00
Johannes Zellner 96eeb70076 Update postgres addon to 1.5.10
This contains a hack for immich in apptask to migrate the extension on
immich app update
2024-03-06 13:20:58 +01:00
Girish Ramakrishnan 6a39e442ac platform: use execArgs 2024-03-06 10:46:00 +01:00
Girish Ramakrishnan 91e030be44 sftp: fix buffer (stdin/stdout) overflow 2024-03-06 10:36:08 +01:00
Johannes Zellner 405e20e18e frontend: xtermjs moved to new node module naming scheme 2024-03-03 18:26:17 +01:00
Johannes Zellner 138f770630 frontend: update dependencies 2024-03-03 18:16:19 +01:00
Johannes Zellner eadc4fda30 Optional VectorRS is gone 2024-03-03 12:40:04 +01:00
Girish Ramakrishnan 35c5f19eac groups ui fixes 2024-03-01 18:45:40 +01:00
Girish Ramakrishnan 6d8ae180b3 initial indonesian translation 2024-03-01 18:45:20 +01:00
Girish Ramakrishnan 0fea30969f Remove bad assert 2024-03-01 14:52:54 +01:00
Girish Ramakrishnan 3ff8f5cb33 scheduler: proper crash when app is still being installed 2024-03-01 10:38:49 +01:00
Girish Ramakrishnan b6162a3bef docker addon: env var can be stored in the db 2024-03-01 10:31:41 +01:00
Girish Ramakrishnan 09ca67f408 restore: give a proper example in the placeholder 2024-02-29 19:37:34 +01:00
Johannes Zellner cadb1ad674 dashboard: show port count info 2024-02-29 15:31:32 +01:00
Johannes Zellner dec7bc3ca3 Check for portBindings with range outside the db constraint for now 2024-02-29 15:20:17 +01:00
Girish Ramakrishnan d87460a3cd encoding removed by mistake 2024-02-29 11:51:57 +01:00
Girish Ramakrishnan f076711ad3 add missing await 2024-02-29 10:41:07 +01:00
Girish Ramakrishnan 6149a5ac12 typo 2024-02-29 09:00:22 +01:00
Girish Ramakrishnan 44c61f7bd7 mail: do port 25 connectivity check with ipv4 2024-02-28 20:47:46 +01:00
Girish Ramakrishnan 4ea47da269 use execFile 2024-02-28 20:37:11 +01:00
Girish Ramakrishnan 35f2c0ec7d use --force option to not error 2024-02-28 19:59:38 +01:00
Girish Ramakrishnan 3316dd1f42 fixup various shell usage 2024-02-28 18:59:45 +01:00
Girish Ramakrishnan 07527fe2b1 shell: when using shell use child_process.exec
arg splitting messes up arguments and debug output
2024-02-28 18:34:07 +01:00
Girish Ramakrishnan 03207f62ba acme2: der is a binary format 2024-02-28 18:13:44 +01:00
Girish Ramakrishnan bcc78d81a6 shell: also print the args 2024-02-28 17:56:20 +01:00
Girish Ramakrishnan 0d38e443d1 groups: local groups can have remote and local users 2024-02-28 17:39:08 +01:00
Girish Ramakrishnan 50a069a7fa apphealthmonitor: only treat 5xx codes as truly erroneous 2024-02-28 17:39:08 +01:00
Girish Ramakrishnan 7455490074 Fix tests 2024-02-28 16:02:42 +01:00
Girish Ramakrishnan 64bb53abc3 services: startTurn needs a shell 2024-02-28 16:02:42 +01:00
Girish Ramakrishnan 18a680a85b groups: only the local groups of a user can be set 2024-02-28 15:56:03 +01:00
Girish Ramakrishnan e26f71b603 externalldap: cannot set members of external group 2024-02-28 15:56:03 +01:00
Girish Ramakrishnan f98fe43843 test: add ldap group test 2024-02-28 14:25:19 +01:00
Johannes Zellner 26dad82cd3 Add busy indicator to proxy auth login view 2024-02-28 13:10:36 +01:00
Girish Ramakrishnan 73d1860995 turn: remove quotes 2024-02-28 13:00:29 +01:00
Girish Ramakrishnan aca5c254d2 add release file as of date 2024-02-28 11:46:26 +01:00
Girish Ramakrishnan 3521815646 Next release is 7.7.0 2024-02-28 11:24:37 +01:00
Girish Ramakrishnan aecc16af5d add inboxDomain fk constraint 2024-02-27 13:45:08 +01:00
Girish Ramakrishnan 5927f397a3 translate port bindings after validation 2024-02-27 13:19:19 +01:00
Girish Ramakrishnan 1e85c86e74 clone: also clone crontab, enableTurn, enableRedis etc 2024-02-27 11:49:12 +01:00
Girish Ramakrishnan 6640929b01 remove unnecessary variable 2024-02-27 11:44:42 +01:00
Girish Ramakrishnan 7a333ace11 minor variable rename 2024-02-27 11:35:14 +01:00
Johannes Zellner 32bce25ad5 frontend: update dependencies 2024-02-26 18:09:27 +01:00
Johannes Zellner 5dc023d801 terminal: fix horizontal overflow in firefox 2024-02-26 18:09:15 +01:00
Johannes Zellner e3f31e6560 Ensure we keep the oidc secret on app update 2024-02-26 17:20:00 +01:00
Johannes Zellner e582e147cb dashboard: fix typo for external ldap group membership listing 2024-02-26 15:08:51 +01:00
Girish Ramakrishnan 6525504923 profile: store preferred language in the database 2024-02-26 13:30:35 +01:00
Girish Ramakrishnan 6d6107161e dashboard rename userInfo to getProfile 2024-02-26 12:38:33 +01:00
Girish Ramakrishnan 3196864f0d dashboard: rename refreshUserInfo to refreshProfile 2024-02-26 12:38:33 +01:00
Girish Ramakrishnan d7596beaf3 index: avoid some callback hell 2024-02-26 11:56:31 +01:00
Girish Ramakrishnan 23de5b5a61 appstore: move existing apps sync to common code 2024-02-26 11:37:23 +01:00
Johannes Zellner d98b09f802 Forward portCount during the portBinding translation 2024-02-25 16:52:10 +01:00
Johannes Zellner 97c012b3df Use full portBindings object internally also for validation 2024-02-25 16:28:57 +01:00
Johannes Zellner 867b8e0253 Also adjust portbindings env variable name check according to the manifest uppercase fix 2024-02-25 16:18:02 +01:00
Johannes Zellner 80400db92a Handle portCount in translatePortBindings 2024-02-25 14:33:57 +01:00
Johannes Zellner 72ff84be47 Update manifestformat 2024-02-25 13:59:55 +01:00
Girish Ramakrishnan 13e62bc738 logs: use stream.destroy() instead of custom hooks 2024-02-24 17:35:37 +01:00
Girish Ramakrishnan 0e83658aa3 make sudo commands terminate properly
sudo forks and execs the program. sudo also hangs around as the parent of the program waiting on the program and also forwarding signals.
sudo does not forward signals when the originator comes from the same process group. recently, there has been a change where it will
forward signals as long as sudo or the command is not the group leader (https://www.sudo.ws/repos/sudo/rev/d1bf60eac57f)
for us, this means that calling kill from this node process doesn't work since it's in the same group (and ubuntu 22 doesn't have the above fix).
the workaround is to invoke a kill from a different process group and this is done by starting detached
another idea is: use "ps --pid cp.pid -o pid=" to get the pid of the command and then send it signal directly

see also: https://dxuuu.xyz/sudo.html
2024-02-24 16:19:07 +01:00
Johannes Zellner 8e4506382d dashboard: make real Roboto Bold font-face available 2024-02-23 19:38:22 +01:00
Johannes Zellner 7a0b74d79b dashboard: Sort app grid items by label || fqdn 2024-02-23 18:11:06 +01:00
Johannes Zellner 1026728ab7 dashboard: Ensure fqdn of applink has the schema removed 2024-02-23 17:57:24 +01:00
Johannes Zellner 909fe5dc15 Add appPortBindings port count column 2024-02-23 17:57:24 +01:00
Johannes Zellner aed9801501 Update postgres addon for pgvector_rs 0.2.0 2024-02-23 17:57:24 +01:00
Girish Ramakrishnan 41f92c52e9 add to changes 2024-02-23 17:47:21 +01:00
Girish Ramakrishnan d0dc104ede logs: make logPaths work
we have to tail via sudo script

Fixes #811
2024-02-23 17:46:22 +01:00
Girish Ramakrishnan ce42680888 update mail container (solr, spam acl) 2024-02-23 11:37:08 +01:00
Girish Ramakrishnan 4ebff09f73 lint 2024-02-22 16:50:35 +01:00
Girish Ramakrishnan 8fd7daade6 rsync: empty check was removed by mistake 2024-02-22 14:47:44 +01:00
Girish Ramakrishnan e6aef755e3 shell: merge spawn into sudo 2024-02-22 12:43:23 +01:00
Girish Ramakrishnan c4b8d3b832 restore: add help link to backup path 2024-02-22 12:03:21 +01:00
Girish Ramakrishnan c38457b48d restore: better placeholder text for backup id 2024-02-22 12:01:03 +01:00
Girish Ramakrishnan 60994f9ed1 shell: docker run needs shell
don't want to get into parsing quotes!
2024-02-22 10:59:39 +01:00
Girish Ramakrishnan a6f078330f shell: no need to promise scoping 2024-02-21 19:40:27 +01:00
Girish Ramakrishnan cfd5c0f82b shell: rewrite exec to use execFile
this also renames execFile to execArgs
2024-02-21 18:54:43 +01:00
Girish Ramakrishnan 14c9260ab0 shell: exec encoding is utf8 by default and no shell
explicitly mark calls that require the shell
2024-02-21 17:47:25 +01:00
Girish Ramakrishnan 23cac99fe9 shell: remove spawn 2024-02-21 13:35:56 +01:00
Girish Ramakrishnan 2237d2bbb7 shell: remove usage of .spawn 2024-02-21 13:27:04 +01:00
Girish Ramakrishnan 62ca0487dc cloudron-support: docker info output 2024-02-21 12:54:08 +01:00
Girish Ramakrishnan 0e858dc333 cloudron-support: dump cloudron version 2024-02-21 12:51:50 +01:00
Girish Ramakrishnan fa3e908afc df can hang 2024-02-21 12:47:30 +01:00
Girish Ramakrishnan c1bb4de6a3 reverseproxy: use async exec 2024-02-21 12:33:04 +01:00
Girish Ramakrishnan 9b94cf18d0 convert more execSync to async 2024-02-21 11:00:12 +01:00
Girish Ramakrishnan b51071155a Use the async shell exec 2024-02-20 22:57:36 +01:00
Girish Ramakrishnan 1128edc23e update: remove dead pre-flight checks 2024-02-20 22:48:12 +01:00
Johannes Zellner df9c7010e2 Make backup memory limit slider more predictable with a minimum of 1 GB 2024-02-20 22:12:20 +01:00
Girish Ramakrishnan 54c7757e38 Fix crash 2024-02-20 21:53:52 +01:00
Girish Ramakrishnan 3da3ccedcb volumes: only wait for 5 seconds for mount status
mountpoint -q can never exit if the nfs mount disappears, for example
2024-02-20 21:38:57 +01:00
Girish Ramakrishnan 26eb739b46 shell: add options to exec 2024-02-20 21:11:09 +01:00
Johannes Zellner 7ce5b53753 dashboard: use snap bounds instead of ticks for memory slider 2024-02-20 14:37:18 +01:00
Girish Ramakrishnan 298d446e5f backups: make ui show min 1GB 2024-02-19 17:06:38 +01:00
Girish Ramakrishnan 450dd70ea2 backups: up min memory limit to 1GB 2024-02-19 17:02:14 +01:00
Girish Ramakrishnan 1d1a7af48e rsync: bump the buffer size to 80MB 2024-02-19 14:15:28 +01:00
Girish Ramakrishnan 003bc457bf setupdns: fix typo with bunny DNS 2024-02-18 18:45:20 +01:00
Girish Ramakrishnan bfafcea0b9 Update changes 2024-02-17 16:42:37 +01:00
Johannes Zellner 66da8dd4dc Always resetup oidc client record for apps 2024-02-15 12:40:58 +01:00
Girish Ramakrishnan 307a3ee015 apps: rename the config functions 2024-02-10 11:53:25 +01:00
Girish Ramakrishnan 95be147eb4 make config.json readable 2024-02-10 10:40:56 +01:00
Girish Ramakrishnan 2bf711f1f7 acme2: default to using secp256r1 key
the secp384r1 is not getting accepted by a few mail servers.

the upstream server is TLS 1.2 and advertises:
        {0xC0, 0x2C} TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
        {0xCC, 0xA9} TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
        {0xC0, 0x2B} TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
        {0xC0, 0x24} TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
        {0xC0, 0x23} TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
        {0xC0, 0x09} TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

the connection fails with:
client connection error: Error: C0E703901F7F0000:error:0A0000C1:SSL routines:tls_post_process_client_hello:no shared cipher:../deps/openssl/openssl/ssl/statem/statem_srvr.c:2241:

node's current cipher list is https://nodejs.org/api/tls.html#modifying-the-default-tls-cipher-suite.
It says default cipher suite prefers GCM ciphers. ECDHE-ECDSA-AES256-GCM-SHA384 and ECDHE-ECDSA-AES128-GCM-SHA256
are the valid TLS 1.2 options but neither of these are selected.

the public key strength is somehow tied to cipher selection, I am not entirely sure how. from what i remember
`ecdsa_secp384r1_sha384` was listed in signature_algorithms extension.

Note that one document I found said that exchange server has a further _P256 and _P384 to cipher combinations.
Which suggests to me that one can also select specific curve+cipher combination.

anyway, with this curve, atleast the connection work with TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
2024-02-09 22:01:55 +01:00
Johannes Zellner c3d2c7bcde Update minior version dependency updates 2024-02-09 19:54:50 +01:00
Johannes Zellner 38e32942cb oidc: remove env var for disabled session/end route 2024-02-09 19:37:54 +01:00
Johannes Zellner febd24b203 Expose port count as _COUNT env varible 2024-02-09 15:49:29 +01:00
Johannes Zellner d1afa3fdca Update package.lock 2024-02-08 18:41:30 +01:00
Johannes Zellner a82d1ea832 Use portCount from manifest with 1 as default 2024-02-08 18:25:25 +01:00
Johannes Zellner 7d9e8da660 Update manifest format for portCount support 2024-02-08 18:17:08 +01:00
Johannes Zellner ec990bd16a WIP: Add some portrange support 2024-02-08 17:39:22 +01:00
Girish Ramakrishnan fb12c0e499 typo 2024-02-08 11:51:56 +01:00
Girish Ramakrishnan 3d1a4f8802 mongodb: update mongo to 6.0 2024-02-08 11:37:03 +01:00
Girish Ramakrishnan c978e3b7ea scheduler: add debug if scheduler is running too long 2024-02-08 10:54:07 +01:00
Girish Ramakrishnan 0b201cee71 mail: update haraka to 3.0.3 2024-02-08 10:36:56 +01:00
Johannes Zellner 8b7c5a65d6 Fixup profile avatar tests 2024-02-06 20:48:27 +01:00
Girish Ramakrishnan 8a63f0368e Fix parsing of displayName
Currently, we only have one field for the name. The first part is
first name. The rest is last name. Obviously, this won't work in all
cases but is the best we can do for the moment.
2024-02-06 16:53:03 +01:00
Girish Ramakrishnan ce4bf7e10c Fix cloudron installation on netcup
https://forum.cloudron.io/topic/10097/cloudron-install-error-dpkg-error/
https://twitter.com/netcup/status/1735265955364720757
2024-01-31 17:24:29 +01:00
Girish Ramakrishnan 479946173f df: run async
df hangs on some systems and this brings down the box code

happens on erroneous cifs/sshfs volumes
2024-01-30 12:23:20 +01:00
Girish Ramakrishnan 176baa075f Fix some typos 2024-01-30 11:53:54 +01:00
Girish Ramakrishnan bfbc41d5a7 Add changes 2024-01-29 23:42:59 +01:00
Girish Ramakrishnan d2b303ffd6 directoryserver: cloudflare warning 2024-01-29 23:39:26 +01:00
Girish Ramakrishnan 00bbb4242d cloudron-support: display last cert renewal log file 2024-01-29 15:08:24 +01:00
Girish Ramakrishnan 0a4b0688a8 cloudron-support: add dashboard cert check 2024-01-29 14:44:42 +01:00
Johannes Zellner 9efe399399 oidc: add picture claim 2024-01-29 13:55:31 +01:00
Johannes Zellner b03240ccb8 Send avatarType explicitly in profile 2024-01-29 13:51:03 +01:00
Johannes Zellner 35eb17a922 dashboard: no need for additional avatar query args 2024-01-29 13:27:22 +01:00
Johannes Zellner c8b997f732 Always send an image as avatar 2024-01-29 13:21:19 +01:00
Johannes Zellner 80e83e0c05 Always send images for profile 2024-01-27 22:55:10 +01:00
Girish Ramakrishnan 9491b5aa39 cloudron-support: add node version check 2024-01-25 15:06:22 +01:00
Girish Ramakrishnan 243a254f3e filesystem: remove hook should not rm recursively
this causes a bug in the backupcleaner when it tries to prune
empty directories when using the filesystem backend.

the bug is hit when a box backup is getting cleaned up but
one or more app backups are preserved.
2024-01-25 11:50:48 +01:00
Johannes Zellner 2d1e0ec890 Ensure we never set more memory than swap for containers 2024-01-24 15:54:57 +01:00
Girish Ramakrishnan 793ee38f79 external ldap: show proper error message on timeout 2024-01-23 23:27:06 +01:00
Girish Ramakrishnan 5240068f2f Update translations 2024-01-23 23:04:46 +01:00
Johannes Zellner b8be174610 Send proper content type for avatar 2024-01-23 17:57:22 +01:00
Girish Ramakrishnan b923925a6c better describe 2024-01-23 13:18:14 +01:00
Girish Ramakrishnan 61f5669d76 externalldap: no need to make REST API calls and start server 2024-01-23 13:16:40 +01:00
Girish Ramakrishnan cf707ba657 move the require 2024-01-23 12:44:23 +01:00
Girish Ramakrishnan 660260336c dockerproxy: await on close 2024-01-23 12:38:57 +01:00
Girish Ramakrishnan 0447086882 remove spurious log 2024-01-23 12:13:28 +01:00
Girish Ramakrishnan 29a96e5df1 ldap test: more unbinding 2024-01-23 11:58:00 +01:00
Girish Ramakrishnan c95bb248fb typo: invoke the function 2024-01-23 11:45:25 +01:00
Girish Ramakrishnan d3551826c1 platform: add deactivated for tests to uninitialize properly 2024-01-23 11:42:02 +01:00
Girish Ramakrishnan d2c21627de ldap: server.close has a callback after all 2024-01-23 10:47:09 +01:00
Girish Ramakrishnan 81e21effa4 test: clear cron jobs to make node exit 2024-01-23 10:24:48 +01:00
Girish Ramakrishnan 2d03941745 cron: clean old jobs variable properly 2024-01-23 10:19:56 +01:00
Girish Ramakrishnan 2401c9cee7 test: unbind ldap client 2024-01-23 10:12:29 +01:00
Girish Ramakrishnan 4f0bbcc73b externaldap: 2fa validation for supported sources
a request to verify password to externaldap.js logic can come from
* cloudron app (via ldapserver.js)
* dashboard (via oidc.js) or proxy auth (proxyauth.js) or CLI (accesscontrol.js)

the only supported source is the 'cloudron' provider at this point
2024-01-22 21:35:19 +01:00
Girish Ramakrishnan 5b9700e099 ldapserver: remove totp logic
none of the apps send totptoken and it's dead code
2024-01-22 14:12:40 +01:00
Girish Ramakrishnan d7dda61775 profile: unify password verification check 2024-01-22 14:03:23 +01:00
Girish Ramakrishnan 3220721f84 directoryserver: test all combinations of 2fa checks
directory server cannot know the source of the requesting client.
there are 3 sources - external app, cloudron app, cloudron dashboard.

the 2fa is requested by client by passing `+totpToken=xxx` . totpToken
is ignored if the user has no 2fa setup. If present, it is validated.
2024-01-22 13:14:29 +01:00
Girish Ramakrishnan 0ed144fe81 hide user import/export buttons until we know the use case
maybe people can just script using the REST API
2024-01-20 12:44:23 +01:00
Girish Ramakrishnan 13b9bed48b externalldap: when using cloudron source, disable local 2fa setup 2024-01-20 12:44:19 +01:00
Girish Ramakrishnan c99c24b3bd users: cannot update profile fields of external user 2024-01-20 11:23:35 +01:00
Girish Ramakrishnan bd1ab000f3 users: do not call setGroups when ldap groups synced 2024-01-20 00:32:49 +01:00
Girish Ramakrishnan a1fd5bb996 users: cannot edit groups with external ldap group sync 2024-01-20 00:11:10 +01:00
Girish Ramakrishnan 9ef29343b3 lint: camel case the variables 2024-01-19 23:35:02 +01:00
Girish Ramakrishnan 8bdcdd7810 groups: members cannot be set for external groups 2024-01-19 23:23:25 +01:00
Girish Ramakrishnan a1217e52c8 group: cannot set name of ldap group 2024-01-19 22:28:48 +01:00
Girish Ramakrishnan a8d37b917a groups: remove unused addMember 2024-01-19 17:25:36 +01:00
Girish Ramakrishnan 06ce351d82 externalldap: set group members as a single transaction 2024-01-19 17:24:35 +01:00
Girish Ramakrishnan f43a601e86 profile: email change now requires password 2024-01-18 18:11:42 +01:00
Johannes Zellner 0dfadc5922 remove extra quotes on digitalocean DNS TXT records 2024-01-17 18:35:48 +01:00
Johannes Zellner c8cd67258a dashboard: show mailbox login in eventlog correctly 2024-01-17 16:17:22 +01:00
Johannes Zellner 7499aa9201 Do not fail is we don't have a servicesConfig yet 2024-01-17 13:13:48 +01:00
Johannes Zellner 0f4ea17f29 dashboard: ensure we show postinstall also from app config screen 2024-01-16 13:54:42 +01:00
Johannes Zellner b7631689b0 Add useVectorRsExtension for postgresql service 2024-01-16 12:53:43 +01:00
Girish Ramakrishnan afe670b49c cloudflare: use response.text since json may not be valid 2024-01-16 12:34:18 +01:00
Girish Ramakrishnan ee43dff35f externalldap: reset group source when disabled 2024-01-13 22:35:23 +01:00
Girish Ramakrishnan 1faf83afe4 groups: external groups cannot be updated 2024-01-13 22:33:46 +01:00
Girish Ramakrishnan ce0b66db7d login: show error on password reset 2024-01-13 21:56:18 +01:00
Girish Ramakrishnan 01d33c45bd profile: hide password reset for external users 2024-01-13 21:45:03 +01:00
Girish Ramakrishnan 63766dd10f do not send email reset for external users 2024-01-13 21:37:02 +01:00
Girish Ramakrishnan 8771158f10 Fix test 2024-01-13 21:29:40 +01:00
Girish Ramakrishnan 46a589f794 Use BAD_STATE consistently for demo mode 2024-01-13 21:15:41 +01:00
Girish Ramakrishnan a007a8e40c externalldap: sync log history 2024-01-13 16:50:10 +01:00
Girish Ramakrishnan 6e42cf4ec5 externalldap: available on all plans
looks like an oversight that this needs a subscription
2024-01-13 16:49:35 +01:00
Girish Ramakrishnan 257dc4e271 external ldap: run syncer every 4 hours
hardcoded for now but we should make this configurable
2024-01-13 15:53:14 +01:00
Girish Ramakrishnan 4136272382 externalldap: add eventlog 2024-01-13 13:22:26 +01:00
Girish Ramakrishnan 4f9e43859c directoryserver: comments can be provided in allowlist 2024-01-13 12:54:10 +01:00
Girish Ramakrishnan b57ad9b8c1 directoryserver: allowlist always needs a single IP/range 2024-01-13 12:30:43 +01:00
Girish Ramakrishnan b8c297b178 ldap allow list is not a json 2024-01-13 12:29:00 +01:00
Girish Ramakrishnan a389b863f9 directory server: add eventlog entry 2024-01-13 12:24:28 +01:00
Girish Ramakrishnan 40c82b3e48 external directory: reset auth source when disabled
this allows existing users to login (including the owner itself)

The alternative is to have some system where we have unique superadmin users across cloudrons which don’t get trampled upon by a sync. This is a bit unrealistic. For the future, we could also design this such that ldap auth is asked for in the initial step i.e at superadmin creation time.

If LDAP connection is lost/down, user can always use 'cloudron-support —owner-login'
2024-01-13 11:51:12 +01:00
Girish Ramakrishnan 2ca94f3159 user: remove make local feature
we discussed a bit on what this does and it's confusing as it stands:

* Use case of this is lost in the realms of time
* Possible guess by is that it was to move users of different Cloudron to a central cloudron
* Currently, the design is a bit flawed because the make user local button doesn’t pin the user. The state is lost in next synchronization.
* Maybe, one should use export/import user for this use case
* Let’s disable this button for now, feature is not complete.
2024-01-13 11:02:25 +01:00
Girish Ramakrishnan 33a97d0e50 cloudflare: validate response fields 2024-01-12 14:52:24 +01:00
Girish Ramakrishnan cef0b6d0d8 test: bump retries 2024-01-11 16:31:12 +01:00
Girish Ramakrishnan 7a5e990ad4 email: rewrite loading of email status using async
we start a bunch of requests in the background for each domain. when
we switch views immediately, to say the eventlog, these requests are
still active in the background.

canceling the requests will require a much bigger refactor.

https://forum.cloudron.io/topic/10434/email-event-log-loading-very-slowly-seems-tied-to-overall-email-domain-list-health-checks
2024-01-09 17:34:54 +01:00
Girish Ramakrishnan ca31dc8d78 namecheap: fix TLD
continuation of 6cdb448f62
2024-01-09 09:44:24 +01:00
Girish Ramakrishnan 5b7667fa4d external ldap: ensure dashboard login does totp check 2024-01-08 11:55:35 +01:00
Girish Ramakrishnan 6cdb448f62 namecheap: pass the TLD correctly
this is safe because namecheap does not allow external domains to be hosted.
otherwise, we would have to use tldjs
2024-01-08 11:54:37 +01:00
Girish Ramakrishnan 053f81a53e externalldap: add tests 2024-01-07 22:04:22 +01:00
Girish Ramakrishnan c842d02d6f namecheap: slow down requests for rate limit
https://www.namecheap.com/support/knowledgebase/article.aspx/9739/63/api-faq/#z
2024-01-07 22:01:42 +01:00
Girish Ramakrishnan 4ddcd547ba directoryserver: leave it to client to decide totp check
initially, the idea was to make the server enforce it. this is more secure. however,
we have 3 kinds of clients - an external cloudron dashboard which needs totp,
an external cloudron app, which doesn't have totp and external apps that don't have totp either.

given that the directory server is IP restricted, this is a reasonable compromise until
we move wholesale to oidc.

a directoryserver setting like "enforce totp" also does not work since this policy will be
applied to all clients.
2024-01-07 20:38:36 +01:00
Girish Ramakrishnan 7bb68ea6b5 rename ldap.js to ldapserver.js
this makes it clearer it is server module and not some generic ldap thing
2024-01-06 13:31:32 +01:00
Girish Ramakrishnan e13f427267 directoryserver: 2fa validation tests 2024-01-06 13:25:12 +01:00
Girish Ramakrishnan c422e2d570 users: add tests for 2fa and relaxed 2fa 2024-01-06 13:15:55 +01:00
Girish Ramakrishnan b3f91c4868 make branding and email config available to admin 2024-01-04 21:46:46 +01:00
Johannes Zellner 19dd56c160 filemanager: Skip rename if name didn't change 2024-01-04 16:00:28 +01:00
Johannes Zellner c577d3d91f filemanager: ask user for confirmation on rename conflict 2024-01-04 15:47:26 +01:00
Johannes Zellner 4f57bed03a Update translation 2024-01-04 15:46:59 +01:00
Johannes Zellner 29663a1229 Update sftp addon 2024-01-04 11:59:56 +01:00
Johannes Zellner d9d4798f69 frontend: update dependencies 2024-01-04 11:59:48 +01:00
Girish Ramakrishnan 32d3c0b920 cloudron-support: suppress mysql message 2024-01-03 22:01:53 +01:00
Girish Ramakrishnan 2224ccab7c fix doc links 2024-01-03 21:25:37 +01:00
Johannes Zellner 8d3d3ba875 dashboard: fix crash on uninstalled app 2024-01-03 18:49:49 +01:00
Johannes Zellner 4ad2b2829b dashboard: remove console.log 2024-01-03 18:48:49 +01:00
Girish Ramakrishnan 1ca46a064c ldap: use proper error message instead of dn
the dn is already in lde_dn field of the error object.
lde_message is the message
2024-01-03 15:23:22 +01:00
Girish Ramakrishnan e42579521c Fix tests 2024-01-03 15:12:07 +01:00
Girish Ramakrishnan 96be06188b ldap: send proper error messages 2024-01-03 15:12:07 +01:00
Johannes Zellner 10172e0211 Add login busy indicator 2024-01-03 14:55:07 +01:00
Girish Ramakrishnan 70c8a5a6be directoryserver: totp check must be enforced 2024-01-03 14:40:51 +01:00
Johannes Zellner af42f150f2 Update sftp addon 2024-01-03 13:20:32 +01:00
Girish Ramakrishnan ba16fdaf60 domain: handle alias domain conflict during deletion 2024-01-02 17:18:37 +01:00
Girish Ramakrishnan c5480bfcc1 mail: update limit plugin 2024-01-02 15:50:34 +01:00
Girish Ramakrishnan 79448e9ff9 oidc: fix error message with correct username but bad password 2023-12-29 18:15:33 +01:00
Girish Ramakrishnan e49398eb47 Bump request timeout to a minute, some servers are just too slow 2023-12-29 16:19:52 +01:00
Girish Ramakrishnan fa842034ed update: continue to update apps if box update never starts
https://forum.cloudron.io/topic/10699/no-automatic-app-updates-with-pending-box-update
2023-12-28 12:16:03 +01:00
Girish Ramakrishnan 672b472359 hetzner: typo in error message 2023-12-27 20:41:34 +01:00
Girish Ramakrishnan 37ed87f9c1 route53: retry on rate limit
route53 has a limit of 5 req/sec/region - https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-requests

see https://forum.cloudron.io/topic/10656/improve-dns-updates-to-avoid-rate-limits/
2023-12-27 12:23:09 +01:00
Johannes Zellner 25ba312636 Use postgres addon with pgvecto_rs extension 2023-12-22 22:45:41 +01:00
Johannes Zellner 340ea3fe9b Fix variable usage bug for noop backup provider 2023-12-18 13:23:40 +01:00
Girish Ramakrishnan d264f8b05c cloudron-support: box check 2023-12-15 15:45:29 +01:00
Girish Ramakrishnan 54672d9fce cloudron-support: fix variable name 2023-12-14 18:01:44 +01:00
Johannes Zellner 5ac9a7f1ef Do not bind to ipv6 for port 53 apps (adguard) 2023-12-14 18:00:03 +01:00
Girish Ramakrishnan b906b0f7f2 cloudron-support: delete extra dashboard conf files 2023-12-14 17:40:03 +01:00
Johannes Zellner 758e1965f1 cloudron-support: improve troubleshooting 2023-12-14 17:28:30 +01:00
Johannes Zellner 8ff437c4d2 cloudron-support: Add colors 2023-12-14 17:22:03 +01:00
Girish Ramakrishnan 4374124985 cloudron-support: whois may not have expiry info 2023-12-14 17:12:07 +01:00
Girish Ramakrishnan 8b5afaa12c cloudron-support: check if whois installed 2023-12-14 17:07:51 +01:00
Girish Ramakrishnan a54c6d3c32 install whois 2023-12-14 17:05:22 +01:00
Girish Ramakrishnan 93af9379bd cloudron-support: add option to disable dnssec 2023-12-14 17:04:05 +01:00
Girish Ramakrishnan 39deb41e2e cloudron-support: troubleshoot 2023-12-14 16:53:51 +01:00
Johannes Zellner d7c0a947fb dashboard: open internal app configure screen from disk usage info 2023-12-14 13:04:03 +01:00
Johannes Zellner 09b438850e Show disk content label in usage bar tooltip 2023-12-14 13:01:59 +01:00
Johannes Zellner cbefd4195f Add some 7.6.3 changes 2023-12-13 17:44:33 +01:00
Girish Ramakrishnan 849c8bf6ac cloudron-support: diag is too short 2023-12-13 16:59:00 +01:00
Johannes Zellner 00268b1da9 Use postgresql addon 5.1.5 which fixes the search_path issue 2023-12-13 16:47:40 +01:00
Girish Ramakrishnan 5f5e6084d7 cloudron-support: rework script into functions 2023-12-13 16:47:15 +01:00
Girish Ramakrishnan 852c4d1300 cloudron-support: remove --reset-appstore-account
the preferred way now is to delete it in cloudron.io instead
2023-12-13 16:21:47 +01:00
Girish Ramakrishnan 81fe6f884b cloudron-support: rename enable-ssh to enable-remote-access 2023-12-13 16:21:14 +01:00
Girish Ramakrishnan 9780e4184e cloudron-setup: typo 2023-12-13 09:32:38 +01:00
Girish Ramakrishnan 1af1660312 cloudron-setup: t2 has lesser memory now 2023-12-11 15:39:25 +01:00
Girish Ramakrishnan 1206f5dc88 Fix the support text 2023-12-10 13:11:22 +01:00
Girish Ramakrishnan 793c4ac017 add some debugs to the firewall script 2023-12-08 11:05:55 +01:00
Girish Ramakrishnan 620e3af525 add to changelog 2023-12-08 10:17:30 +01:00
Johannes Zellner c7b2e15d16 Use new postgres addon image with vectors extension enabled 2023-12-08 09:15:45 +01:00
Girish Ramakrishnan 48f0c75c57 network: increase maxelem of the ipsets 2023-12-07 23:20:24 +01:00
Girish Ramakrishnan 93d3b24300 firewall: max 65536 elements 2023-12-07 21:52:51 +01:00
Girish Ramakrishnan 21f830eb8c network: disable save button when in progress 2023-12-07 21:29:23 +01:00
Girish Ramakrishnan c195cb00c0 backup: redact nested password in configs 2023-12-07 13:38:38 +01:00
Girish Ramakrishnan f7a53e1b15 also flush the ipv6 blocklist 2023-12-06 22:20:25 +01:00
Girish Ramakrishnan 759f3f29f0 hetzner: accomodate other nameservers 2023-12-05 18:13:34 +01:00
Girish Ramakrishnan be35926fd1 ovh: accomodate anycast.me servers 2023-12-05 14:04:16 +01:00
Johannes Zellner 45fd046b9b Make systeminfo strings translatable 2023-12-04 16:59:24 +01:00
Girish Ramakrishnan 2b8d0f60e7 add to changes 2023-12-04 15:35:35 +01:00
Girish Ramakrishnan 0e0199fc94 typo 2023-12-04 09:09:43 +01:00
Johannes Zellner 7a730c445b dashboard: Show system stats 2023-12-04 01:51:33 +01:00
Johannes Zellner 4d29592450 Do not invalidate session sudo but only for the command we want to test 2023-12-04 01:42:46 +01:00
Girish Ramakrishnan 44be454a1e system: return activation time if we have it 2023-12-04 01:41:56 +01:00
Girish Ramakrishnan cbf1b47332 system: merge info and dmi routes
also return uptimeSecs instead of abstract date
2023-12-04 01:11:26 +01:00
Girish Ramakrishnan eb64bd296a system: return uptime and reboot required 2023-12-04 00:46:12 +01:00
Girish Ramakrishnan 72083f59cd system: dmi information 2023-12-04 00:31:18 +01:00
Girish Ramakrishnan 8a20b603f5 system: cpu route 2023-12-04 00:23:25 +01:00
Girish Ramakrishnan d45c433bc7 fix dockerproxy test 2023-12-04 00:11:11 +01:00
Girish Ramakrishnan 470417fcbe more test fixing 2023-12-03 21:18:16 +01:00
Girish Ramakrishnan 8e28d2a5aa Fix support tests 2023-12-03 20:04:17 +01:00
Girish Ramakrishnan 344578006c make oidc test stable 2023-12-03 20:04:17 +01:00
Johannes Zellner e19fd5cf17 Make support help items translatable 2023-12-03 18:03:25 +01:00
Girish Ramakrishnan 943325baa3 better sudoers configuration check 2023-12-03 17:50:50 +01:00
Johannes Zellner 702de2557e Update translations 2023-12-03 16:46:15 +01:00
Johannes Zellner 159f3419a5 Hide support ticket UI 2023-12-03 16:46:15 +01:00
Johannes Zellner b1fb3bccd8 Add help section in support 2023-12-03 16:46:15 +01:00
Johannes Zellner 8927634636 Remove supportConfig route 2023-12-03 16:46:15 +01:00
Girish Ramakrishnan b9e584752b Fix system test 2023-12-03 15:52:31 +01:00
Johannes Zellner 5857c05e01 Remove noisy debug for applinks 2023-12-03 15:11:16 +01:00
Johannes Zellner 81eb4bdebb Improve jsdom usage for applink icons 2023-12-03 14:24:45 +01:00
Johannes Zellner da18427125 Better error feedback on appstore login 2023-12-02 18:20:13 +01:00
Johannes Zellner df0b4ace5e Update translations 2023-12-02 18:20:13 +01:00
Johannes Zellner 5971d3bf77 Better error handling for setupToken 2023-12-02 18:20:13 +01:00
Johannes Zellner cca3138f05 Remove appstore web token api 2023-12-02 18:20:13 +01:00
Johannes Zellner 242c091add Add ability to register a Cloudron with a setupToken only 2023-12-02 18:20:13 +01:00
Girish Ramakrishnan 6f0788c9e4 typo 2023-12-01 17:29:06 +01:00
Girish Ramakrishnan 15132a30da Fix linode object storage
36c4772b17 broke linode object storage
2023-12-01 17:27:10 +01:00
Johannes Zellner 3245370280 New postgres addon for newly required extensions 2023-11-30 13:00:53 +01:00
Girish Ramakrishnan 740c0fe318 dockerproxy: all volumes to be mounted in child containers
this will allow jupyterhub notebooks to access volumes
2023-11-27 23:06:11 +01:00
Johannes Zellner 8d20ca2053 frontend: update dependencies 2023-11-27 13:09:56 +01:00
Johannes Zellner cdd8e34cfc Move owner/chown model into directoryModel 2023-11-27 13:09:42 +01:00
Girish Ramakrishnan a056bcfdfe mailserver: fix sending of double header 2023-11-26 15:40:21 +01:00
Girish Ramakrishnan b5065a381f update packages 2023-11-26 09:46:51 +01:00
Girish Ramakrishnan 56324e3e8e Fixup sshd comment 2023-11-24 15:46:24 +01:00
Girish Ramakrishnan e64182d791 mail: make redis non-persistent
it keeps emitting warnings non-stop about bgsave not working
2023-11-23 14:27:58 +01:00
Johannes Zellner 573eaee287 frontend: unify owner models for apps and volumes 2023-11-21 14:51:24 +01:00
Johannes Zellner 771bfd0244 Do not underline a tags on hover 2023-11-21 12:57:37 +01:00
Johannes Zellner 2db96a5242 frontend: update dependencies 2023-11-21 12:51:57 +01:00
Girish Ramakrishnan 8459d231c2 setup/restore: fix error with static ip configuration 2023-11-18 17:53:53 +01:00
Girish Ramakrishnan efd42b7293 ovh: fix nameserver matching
there's a whole bunch: ovh.ca, ovh.us, ovh.com, ovhcloud.com, ovh.co.uk

https://forum.cloudron.io/topic/10435/limitation-with-dns-using-ovh-in-validating-name-server-domains-domain-nameservers-are-not-set-to-ovh
2023-11-16 10:27:59 +01:00
Johannes Zellner fe1c483b78 logviewer: preserve horizontal scroll position 2023-11-14 14:24:58 +01:00
Girish Ramakrishnan bf381aff7f redis: use default instead of redisuser
suggested at https://github.com/redis/node-redis/issues/1591
2023-11-14 10:50:25 +01:00
Girish Ramakrishnan 1a43c05d48 sftp: fix crash when app has no addons 2023-11-13 21:58:44 +01:00
Girish Ramakrishnan 804a3f8adb Capitalize dnsimple properly 2023-11-13 18:30:24 +01:00
Girish Ramakrishnan 1122137d12 typo in dnsimple configuration 2023-11-11 12:57:10 +01:00
Girish Ramakrishnan b88afbac4e dns: add ovh backend 2023-11-06 15:22:24 +01:00
Girish Ramakrishnan 8e468788a9 dockerproxy: fix typo 2023-11-04 13:28:02 +01:00
Girish Ramakrishnan 7f9e5303be add voip category 2023-11-03 10:24:38 +01:00
Girish Ramakrishnan 08c48df862 add qbittorrent to blacklist 2023-11-01 23:54:20 +01:00
Girish Ramakrishnan 1bc3875519 cloudron-support: check for active owner as well 2023-11-01 12:30:31 +01:00
Girish Ramakrishnan c69cf4731a remove extra space 2023-10-31 21:51:46 +01:00
Johannes Zellner 4ad5bd71f1 Try to only use sensible icons for applinks 2023-10-31 14:55:24 +01:00
Girish Ramakrishnan 1ddc1cec20 Fix role definitions 2023-10-30 18:40:20 +01:00
Girish Ramakrishnan 934c701be2 vultr: fix copy of large objects
https://forum.cloudron.io/topic/10266/backups-are-failing
2023-10-26 09:51:07 +02:00
Johannes Zellner fadd4165df Update pankow with item activation debouncing 2023-10-25 16:19:44 +02:00
Johannes Zellner 538454b11b Update dependencies 2023-10-25 16:03:48 +02:00
Johannes Zellner e4464afd56 Use new graphite container for whisper cleanup 2023-10-24 01:06:37 +02:00
Girish Ramakrishnan eb1f3d8b55 dns: add dnsimple 2023-10-24 00:26:10 +02:00
Johannes Zellner e7208278fc Only collect stats for app main containers 2023-10-23 22:23:23 +02:00
Johannes Zellner e87370354b Update dependencies 2023-10-23 16:16:20 +02:00
Johannes Zellner fc3bd3a0fe Deletion confirmation dialog moved out of pankow 2023-10-23 16:16:00 +02:00
Johannes Zellner 2270f5789a frontend: Update pankow 2023-10-21 18:59:57 +02:00
Johannes Zellner 7ef20c273e Update sftp service for folder copy 2023-10-21 17:37:44 +02:00
Johannes Zellner 39942dc5b0 frontend: update dependencies 2023-10-21 17:13:31 +02:00
Johannes Zellner 37a6e60e90 Do not allow newlines in CSP rules 2023-10-18 13:53:21 +02:00
Johannes Zellner 1f8c55f536 Add docker-volume disk usage info 2023-10-17 16:51:57 +02:00
Johannes Zellner 36c4772b17 Add missing Linode S3 regions 2023-10-17 15:35:33 +02:00
Girish Ramakrishnan 47d7536e24 du: add dovecot index log to the exclude list 2023-10-17 10:00:27 +02:00
Johannes Zellner 9d9a407c3d Noop provider does not have a rootPath set 2023-10-16 16:36:31 +02:00
Johannes Zellner 7d731d7600 dashboard: paint backup failure notifications red 2023-10-16 14:18:18 +02:00
Girish Ramakrishnan dd9db22e9c Fix transient du error
du error: Command failed: du -Dsb "/home/yellowtent/boxdata/mail" du: cannot access '/home/yellowtent/boxdata/mail/vmail/user@example.com/mail/dovecot-uidlist.lock': No such file or directory .
2023-10-13 15:52:36 +05:30
Girish Ramakrishnan 6830c4fc67 redis: fix issue when restoring optional redis 2023-10-11 14:53:25 +05:30
Girish Ramakrishnan 2f3fba346f volumes: throw error for unsupported update 2023-10-09 10:31:31 +05:30
Girish Ramakrishnan 5bae308cae docker: Fix crah when docker has no space 2023-10-09 07:38:57 +05:30
Johannes Zellner ed71f9ac68 The oidc client signing algorithm is not really so important to show it toplevel 2023-10-06 15:32:40 +02:00
Johannes Zellner 5e7bc78d35 Set custom oidc client id and secret in the backend 2023-10-06 15:16:57 +02:00
Girish Ramakrishnan 41319bc817 ldap server close has no callback 2023-10-01 14:33:19 +05:30
Girish Ramakrishnan ceb908bee7 Use constants.TEST 2023-10-01 13:52:19 +05:30
Girish Ramakrishnan 0e195679bf Make tests pass 2023-10-01 13:42:02 +05:30
Girish Ramakrishnan 9c78b2df9a dockerproxy: lint 2023-10-01 12:12:02 +05:30
Girish Ramakrishnan 4844f6d927 dashboard: remove old domain config on switch 2023-09-29 09:26:42 +05:30
Girish Ramakrishnan 64381e2a04 backups: remove validation mount point after testing it
this also moves out the attempt validation logic from mounts code
into volumes. mounts.tryAddMount is also used in backup code
2023-09-29 08:01:58 +05:30
Johannes Zellner 8d0abf214c First attempt a temporary mountpoint 2023-09-28 10:56:46 +02:00
Johannes Zellner 8426b11a90 Add volumes translation 2023-09-28 09:43:48 +02:00
Girish Ramakrishnan 661bd47202 more changes 2023-09-28 10:34:49 +05:30
Girish Ramakrishnan 8e12281b86 tests: Fix the hash 2023-09-28 10:11:50 +05:30
Girish Ramakrishnan 51409d3031 runtimedirs: .cache is already symlinked in base image 2023-09-27 22:21:39 +05:30
Johannes Zellner e1f88b9cd8 Show openid icon for login indicator 2023-09-27 16:13:45 +02:00
Girish Ramakrishnan 28397379e8 app proxy: check the manifest id and not appStoreId
when installing via REST API or CLI, appStoreId will be empty.
2023-09-27 19:30:52 +05:30
Girish Ramakrishnan 7d5d857c28 More changes 2023-09-27 17:08:46 +05:30
Johannes Zellner 3bde6e7475 Fixup eventlog tests 2023-09-27 09:12:06 +02:00
Girish Ramakrishnan 6bfd047c0f use npm ci 2023-09-27 11:21:12 +05:30
Girish Ramakrishnan 925ca1d79d Update base image for more symlink fixes 2023-09-27 11:20:05 +05:30
Girish Ramakrishnan efa1a2d5ca Update changes 2023-09-27 08:27:22 +05:30
Johannes Zellner 0fd4a831c8 Do not set frame-action and default-src CSP for openid routes
If set chrome wants a rule with * and safari on iOS wants an explicit
schema, so not setting any works with both.
2023-09-26 23:37:55 +02:00
Johannes Zellner 31ef53c530 Revert "Set custom csp rule for OpenID consent form submit based on schema"
This reverts commit b0115acf42.
2023-09-26 23:37:13 +02:00
Johannes Zellner b0115acf42 Set custom csp rule for OpenID consent form submit based on schema 2023-09-26 22:32:37 +02:00
Johannes Zellner e91536b9e1 Alert() should also update type 2023-09-26 14:14:09 +02:00
Johannes Zellner 8f87070b45 Add color coded indicator to notifications 2023-09-26 12:58:19 +02:00
Johannes Zellner b72a5e9c69 Add notification types 2023-09-22 17:58:13 +02:00
Girish Ramakrishnan fc6c8c5b7f cloudron-setup: DO memory has become lower 2023-09-22 06:56:47 +05:30
Girish Ramakrishnan 26cf5b8b80 app proxy: set the Host header
The Host header will help the destination request identify which
service the request is meant for. This can potentially be an internal
endpoint identifier.

X-Forwarded-Host is meant to have the external facing server endpoint.

This means that: if the user wants to expose internal.service.com which
resolves to some internal IP as external.service.com, then:
* Host header has to be internal.service.com
* X-Forwarded-Host is external.service.com
* proxy_pass to internal.service.com
2023-09-21 21:54:02 +05:30
Girish Ramakrishnan 26d6464360 add to changes 2023-09-21 13:05:10 +05:30
Girish Ramakrishnan 17e6266384 mail: make virtual "All Mail" togglable
Mac clients behave poorly when this virtual mailbox is present
2023-09-21 13:04:41 +05:30
Girish Ramakrishnan 9d0914ecc1 mail: remove unused dialog
this dialog merged into the main page
2023-09-21 13:04:41 +05:30
Johannes Zellner 328c61b67f Show volume edit options for network mounts 2023-09-20 20:24:19 +02:00
Johannes Zellner 981d76ef7f Add rest api to update volume mount options 2023-09-20 16:28:47 +02:00
Girish Ramakrishnan a2450be63a Update addons to new base image 2023-09-20 19:36:40 +05:30
Girish Ramakrishnan c1a53f7b29 oidc: loginRedirectUri can be empty string
this is required for ttrss
2023-09-20 14:47:27 +05:30
Johannes Zellner 51d49ef60a Use local buildFilePath 2023-09-20 10:04:24 +02:00
Johannes Zellner 585bd04c42 Update pankow 2023-09-20 09:49:25 +02:00
Johannes Zellner 0fa45f102b Update pankow and other frontend modules 2023-09-18 16:26:30 +02:00
Girish Ramakrishnan 4997ad0468 Fix status codes of 2fa routes 2023-09-13 21:07:07 +05:30
Girish Ramakrishnan 348eb16cef api: fix background image route 2023-09-13 20:08:52 +05:30
Girish Ramakrishnan c376f2473e directoryserver: check secret only if it exists 2023-09-13 20:08:52 +05:30
Johannes Zellner 2484cf490b Ensure dyndns every 10min 2023-09-13 16:14:25 +02:00
Johannes Zellner 8874ef1184 terminal: fix app restart 2023-09-13 10:41:34 +02:00
Girish Ramakrishnan 964dc990a6 network: simply use ip instead of ipv4/ipv6
this makes it simpler for openapi docs
2023-09-12 20:34:55 +05:30
Girish Ramakrishnan 58bf5ec677 Fix typo causing mailFqdn to be undefined 2023-09-12 18:03:36 +05:30
Johannes Zellner 93d4271bce Clear potential postinstall flag after backup import 2023-09-11 15:11:53 +02:00
Girish Ramakrishnan 4653d6fdef waitfordns: ignore REFUSED error 2023-09-10 06:17:46 +05:30
Girish Ramakrishnan cbfb52b920 updater: if update just finished, update info is obsolete 2023-09-09 20:46:24 +05:30
Girish Ramakrishnan 8880d46dd5 add comment on why these are strings 2023-09-09 07:57:53 +05:30
Girish Ramakrishnan 20a4136eb5 remove morgan
morgan breaks our log output parsing. debug() puts a timestamp in
the front.
2023-09-07 17:08:05 +05:30
Girish Ramakrishnan bbc6714be8 backup: show app backup details 2023-09-05 09:15:12 +05:30
Girish Ramakrishnan f8e2947015 backup: display the remote path in details 2023-09-05 08:56:46 +05:30
Girish Ramakrishnan 5a3ffa20ce backupcleaner: dump the retention 2023-09-05 08:48:48 +05:30
Girish Ramakrishnan d0c66ed3f7 services: default to 256MB for all 2023-09-05 08:35:53 +05:30
Girish Ramakrishnan 253f509fc6 redis: set default memory limit to 256M
The 'reset to default' functionality in services view has 256M hardcoded
2023-09-04 18:22:57 +05:30
Girish Ramakrishnan 8f9bc8817d cloudron-setup: add AVX check for 7.6 and beyond 2023-09-02 12:02:37 +05:30
Girish Ramakrishnan f22a2b2053 mongo: update to 5.0 2023-09-02 09:40:50 +05:30
Johannes Zellner 74ab6d2794 Fixup backup task stop button translation 2023-08-31 22:47:22 +02:00
Girish Ramakrishnan e9f54a325c turn: add ddos mitigation settings 2023-08-31 15:41:20 +05:30
Girish Ramakrishnan d03e401d94 lodash is not used 2023-08-30 09:24:43 +05:30
Girish Ramakrishnan 7fe2de448e remove pipeline() chain
it cannot be chained afaict
2023-08-29 17:44:02 +05:30
Girish Ramakrishnan 35828fe1c7 hush: wait for close event instead of finish event
use stream.pipeline to cover all the corner cases
2023-08-29 11:44:52 +05:30
Girish Ramakrishnan 6b30b6211a Add to Changes 2023-08-29 06:48:52 +05:30
Girish Ramakrishnan 1c714bc1f2 lint 2023-08-29 06:11:12 +05:30
Johannes Zellner 24981e1f81 Fix renew certs call from cron 2023-08-28 23:55:13 +02:00
Girish Ramakrishnan d2c702f890 eventlog: always use AuditSource objects as source field 2023-08-28 08:13:56 +05:30
Johannes Zellner 246c45c1bc Fixup logviewer URL for backup failed email 2023-08-26 09:36:17 +02:00
Girish Ramakrishnan 5eaae1c960 system: fix crash updating disk usage 2023-08-26 08:05:52 +05:30
Johannes Zellner 27dd54dbeb filemanager: Do not attach a generic esc handler for viewer exit
This intereferes too much with the text editor.
image viewer already handles this internally
2023-08-25 13:59:44 +02:00
Girish Ramakrishnan 9c3173e8ef Fix broken directory server config migration 2023-08-25 16:44:08 +05:30
Johannes Zellner 0e507bad7e Add explicit billing issue ticket type 2023-08-25 12:44:52 +02:00
Girish Ramakrishnan 34c997401f backups: add contabo object storage 2023-08-25 09:51:27 +05:30
Girish Ramakrishnan f6977cd15a add to changes 2023-08-23 18:59:07 +05:30
Girish Ramakrishnan 91a4334b42 mail: use 25MB instead of 25MiB for databytes 2023-08-23 18:58:09 +05:30
Johannes Zellner 07937424ae dashboard: disable 2fa setup for external users 2023-08-23 14:15:49 +02:00
Johannes Zellner c98a7b7850 filemanager: Always show app or volume name 2023-08-23 14:13:07 +02:00
Johannes Zellner 0895f65582 filemanager: fix logs button link 2023-08-22 14:29:04 +02:00
Girish Ramakrishnan 68aab74185 Fix progress callback message 2023-08-22 16:28:48 +05:30
Girish Ramakrishnan 3c93cf07fc cloudron-setup: fix the installation line 2023-08-22 16:26:44 +05:30
Johannes Zellner ec8a0e51b9 dashboard: give dashboard domain change label more space 2023-08-22 10:31:53 +02:00
Girish Ramakrishnan 0bb354bc4f mail: fix acl and perm issue with virtual All Mails 2023-08-22 10:31:48 +05:30
Girish Ramakrishnan 095bef8ca6 mail: namespace ordering broke usage reporting 2023-08-22 09:47:13 +05:30
Johannes Zellner 03529174de filemanager: also condense common buttons 2023-08-21 20:29:44 +02:00
Johannes Zellner 25d06690ec terminal: do not show labels for common buttons 2023-08-21 20:29:44 +02:00
Girish Ramakrishnan e833b859eb cloudron-setup: docker images are downloaded as part of installer now 2023-08-21 22:26:58 +05:30
Girish Ramakrishnan 4b6d4fe6be another take on prune images 2023-08-21 22:17:28 +05:30
Girish Ramakrishnan f152331615 Fix issue where backup config disappeared 2023-08-21 22:17:28 +05:30
Johannes Zellner c7ced6a487 dashboard: Remove verbose OpenID URLs 2023-08-21 18:09:47 +02:00
Girish Ramakrishnan 1ad94708b4 apps have to reconfigured in main thread
they cannot be done in the task process
2023-08-21 21:35:09 +05:30
Johannes Zellner 61047e374c terminal: wait for DOM to update the a-tag before opening it 2023-08-21 17:48:14 +02:00
Girish Ramakrishnan bf2531337f Fix crash on mail server change 2023-08-21 21:15:58 +05:30
Johannes Zellner be481ef006 frontend: update dependencies 2023-08-21 17:34:54 +02:00
Johannes Zellner 3bd5f9b027 filemanager: Use different owner map for apps and volumes 2023-08-21 17:34:40 +02:00
Johannes Zellner d05e16dc11 filemanager: Show uid if username is not known 2023-08-21 16:54:13 +02:00
Girish Ramakrishnan 91a4883b50 typo 2023-08-21 19:43:53 +05:30
Girish Ramakrishnan 79af6c1a68 On dashboard or email location change, reconfigure immediately 2023-08-21 18:34:07 +05:30
Girish Ramakrishnan 9e093db7d8 mailserver: fix crash when restarting 2023-08-21 15:19:42 +05:30
Girish Ramakrishnan 2427f15231 typo in branding route 2023-08-21 15:01:43 +05:30
Girish Ramakrishnan b895cc6aad capitalize progress 2023-08-21 14:40:57 +05:30
Johannes Zellner 40884705b4 Fixup demo note text 2023-08-17 13:45:07 +02:00
Johannes Zellner 98e43a6f5a Add login note for demo Cloudron 2023-08-17 13:38:47 +02:00
Girish Ramakrishnan 28bfab6700 LOCATION_TYPE can move into location.js 2023-08-17 16:05:19 +05:30
Girish Ramakrishnan 5c98b6f080 crash fixes 2023-08-17 13:02:36 +05:30
Girish Ramakrishnan 3d0ba557e5 add Location class 2023-08-17 10:44:07 +05:30
Girish Ramakrishnan de7879afb5 store subdomain in database instead of fqdn
this makes it more consistent with the locations table
2023-08-16 21:58:56 +05:30
Girish Ramakrishnan 1133a41b77 Fix proxy config not generated on restore 2023-08-16 12:52:52 +05:30
Girish Ramakrishnan e33ae8ae11 add missing export 2023-08-16 10:28:44 +05:30
Girish Ramakrishnan aa8c23c8b3 rework backup root
notes:
* backup root cannot come from backend. for dynamic mounts backend cannot know where it is mounted
* backupConfig is 3 parts - format / mount / password . there is also this rootPath (which should not be in db)
* password should be stored separately in settings at some point
* format has to be passed along everywhere because we allow restore from  same backupConfig but different format. we do this by saving the format in the backups table

fixes #819
2023-08-15 22:51:45 +05:30
Girish Ramakrishnan da49a69562 backups: testConfig is really testStorage 2023-08-15 19:59:00 +05:30
Girish Ramakrishnan 9dedf0ec05 validate the backup format 2023-08-15 19:57:51 +05:30
Girish Ramakrishnan cd9d49116e backups: move limits and storage into separate keys 2023-08-15 10:48:56 +05:30
Girish Ramakrishnan 630853abb5 move mountObjectFromBackupConfig into backups 2023-08-15 08:55:38 +05:30
Girish Ramakrishnan e6b85c2df7 remount does not need a backend hook 2023-08-15 08:55:38 +05:30
Girish Ramakrishnan d0fca9eeb9 trigger location changed only if activated 2023-08-14 14:20:20 +05:30
Girish Ramakrishnan 8cc08c734e Add to changes 2023-08-14 11:32:08 +05:30
Girish Ramakrishnan 4b1b38be63 make tests work again 2023-08-14 11:08:38 +05:30
Girish Ramakrishnan 4acbb7136a proper task name for dashboard change 2023-08-14 10:45:12 +05:30
Girish Ramakrishnan abff970169 make use of fqdn function 2023-08-14 09:35:08 +05:30
Girish Ramakrishnan 2b53ea0260 Fix dashboard config not getting generated 2023-08-14 02:08:10 +05:30
Girish Ramakrishnan a7be30a816 better naming of the dashboard functions 2023-08-13 10:38:07 +05:30
Girish Ramakrishnan e723c3c19b move dashboard change routes under dashboard/ 2023-08-13 10:06:01 +05:30
Girish Ramakrishnan 7b32cb16f3 move platform status into services 2023-08-12 22:29:09 +05:30
Girish Ramakrishnan 68a3c267e5 move config route under dashboard
it's essentially giving info for various parts of the ui
2023-08-12 22:25:49 +05:30
Girish Ramakrishnan 070f6e5de3 move startup logic to platform.js 2023-08-12 22:25:46 +05:30
Girish Ramakrishnan 559125cd3c remove unused require 2023-08-12 18:02:55 +05:30
Girish Ramakrishnan c62091b077 system: getUbuntuVersion 2023-08-11 21:47:49 +05:30
Girish Ramakrishnan f71e622fdb keep dropdown alphabetical 2023-08-11 21:09:36 +05:30
Girish Ramakrishnan eee49a8291 move dashboard setting into dashboard.js 2023-08-11 21:04:10 +05:30
Girish Ramakrishnan 27ce8f9351 oidc: fix crash when rendering error 2023-08-11 18:38:03 +05:30
Johannes Zellner cacf0d34f5 Add oidc views footer 2023-08-11 13:53:23 +02:00
Johannes Zellner 34f2386a9d dashboard: merge main.js into index.js 2023-08-11 12:25:40 +02:00
Johannes Zellner 4936475c2a Merge oidc settings for user directory view 2023-08-11 11:32:45 +02:00
Girish Ramakrishnan cd0b51dac2 Do not continue processing after redirect 2023-08-11 11:43:26 +05:30
Girish Ramakrishnan 1041b3b8ab plural 2023-08-11 07:35:57 +05:30
Girish Ramakrishnan 955a43723f cleanup status route
this is now purely a healthcheck route and nothing else

at some point, we will server render password reset and setup account views
2023-08-10 22:29:48 +05:30
Girish Ramakrishnan 1cdd528b45 separate the provision status and cloudron status 2023-08-10 22:29:47 +05:30
Johannes Zellner 98719aa942 Remove unused includes in oidc views 2023-08-10 17:06:00 +02:00
Girish Ramakrishnan 57772662aa move provisioning routes into /provision/ 2023-08-10 16:52:10 +05:30
Girish Ramakrishnan 6c4aa605df move various login routes under auth/ 2023-08-10 16:24:10 +05:30
Girish Ramakrishnan 9ba6908764 use list pattern when listing 2023-08-10 16:21:12 +05:30
Johannes Zellner d3b58483bd Update translations 2023-08-10 00:09:24 +02:00
Johannes Zellner 63ed900087 Purge user settings from settings view elements 2023-08-10 00:05:56 +02:00
Johannes Zellner b5ab7851c1 Remove user directory settings and oidc from users view 2023-08-09 23:53:36 +02:00
Johannes Zellner 4de2a477c6 Remove user directory from users view 2023-08-09 23:42:45 +02:00
Johannes Zellner 094fdad9a7 Remove externalldap from users view 2023-08-09 23:39:54 +02:00
Johannes Zellner 6eefe4c7c9 Duplicate users view into user settings view 2023-08-09 23:38:43 +02:00
Johannes Zellner 621ffb404c Remove unused subscription modals 2023-08-09 23:36:29 +02:00
Johannes Zellner 527c2f0baf Remove unused status api properties and label others 2023-08-09 17:48:03 +02:00
Johannes Zellner 842d7e6b61 Add block device selector in restore view 2023-08-09 12:14:37 +02:00
Johannes Zellner fb4921e2d3 Do not ignore mount failures on restore 2023-08-08 20:52:32 +02:00
Girish Ramakrishnan e6c43c84e4 hardcode yellowtent user uid
when we use an external disk, we chown 777 the mountpoint so that the
yellowtent user can write to it. the files are created as the 'yellowtent'
user.

when this disk is attached to another server for a restore, the new server's
yellowtent user may not be able to access the files if the uid does not match
between the old and new server.

for this, reason hardcode the uid
2023-08-08 23:18:43 +05:30
Johannes Zellner 8777a60b99 Make disk backup config known in restore view 2023-08-08 18:36:55 +02:00
Girish Ramakrishnan c6db1c70c0 docker: fix image prune
it seems docker images --digests cloudron/sftp --format "{{.ID}} {{.Repository}}:{{.Tag}}@{{.Digest}}
broke at some point
2023-08-08 21:21:00 +05:30
Johannes Zellner 7d9e697d85 dashboard: remove some debug console.logs() 2023-08-08 15:52:09 +02:00
Johannes Zellner 10646e9e04 Add generic disk (partition) backup provider to replace ext4 and xfs 2023-08-08 15:11:22 +02:00
Johannes Zellner 5ef8d8d3b0 Add uuid to block device listing 2023-08-08 12:34:19 +02:00
Johannes Zellner e9f3f13564 Only always use token types from tokens.js 2023-08-07 19:26:04 +02:00
Girish Ramakrishnan 8f20a09791 Fix update route crash 2023-08-05 08:48:03 +05:30
Girish Ramakrishnan 67ee82abb9 remove settings.dashboardOrigin 2023-08-04 22:10:14 +05:30
Girish Ramakrishnan 4cdf37b060 settings: move mailFqdn/Domain into mailServer 2023-08-04 22:02:24 +05:30
Girish Ramakrishnan 946e5caacb split mail and mailserver
mail = all the per-domain code
mailserver = all the mail server level code
2023-08-04 20:54:39 +05:30
Girish Ramakrishnan fb9d8c23e1 move appstore urls into appstore.js 2023-08-04 15:41:41 +05:30
Girish Ramakrishnan 37ae142a16 keep the cloudron routes close 2023-08-04 14:17:13 +05:30
Girish Ramakrishnan 6aad89ae6e demo is just a constant, not a setting 2023-08-04 14:13:30 +05:30
Girish Ramakrishnan d79d24efad remove settings route entirely, redundant by now 2023-08-04 14:03:04 +05:30
Girish Ramakrishnan 2cdbf4d2c5 move server routes into /system 2023-08-04 13:42:21 +05:30
Girish Ramakrishnan 1264cd1dd7 reverseproxy: move renew and trusted ip routes 2023-08-04 13:19:48 +05:30
Girish Ramakrishnan a49cb0b080 move sync_dns out of cloudron route into domains 2023-08-04 12:55:57 +05:30
Girish Ramakrishnan a4c3d39cc3 Fix eventlog route 2023-08-04 12:46:54 +05:30
Girish Ramakrishnan da73067315 rename change notifiers to have handle prefix 2023-08-04 11:54:15 +05:30
Girish Ramakrishnan e73b75e4b5 settings: move backup settings 2023-08-04 11:54:12 +05:30
Girish Ramakrishnan 77c66d9a02 settings: move provider to provision 2023-08-04 11:01:45 +05:30
Girish Ramakrishnan 775246946a settings: move language and tz into cloudron.js 2023-08-04 10:58:04 +05:30
Girish Ramakrishnan ec23c7d2b8 Suppress aws sdk warning
https://github.com/aws/aws-sdk-js/issues/4354#issuecomment-1664694545
2023-08-04 09:21:48 +05:30
Girish Ramakrishnan 5603b9e811 move updater routes and settings under /api/v1/updater 2023-08-03 15:35:27 +05:30
Johannes Zellner db26a6beb9 dashboard: only show volumes UI for admins and owners 2023-08-03 10:43:28 +02:00
Girish Ramakrishnan 47d57a3971 fold sysinfo into network
the backends are network backends
2023-08-03 13:38:42 +05:30
Girish Ramakrishnan a4d57e7b08 refactor into getServiceConfig 2023-08-03 12:52:47 +05:30
Girish Ramakrishnan bbc6ba1a35 settings: move service setting into services.js
this also introduces getJson/setJson
2023-08-03 11:50:00 +05:30
Girish Ramakrishnan 3caf0c3902 Fix crash in getConfig 2023-08-03 09:03:47 +05:30
Girish Ramakrishnan d12e6ee2b3 settings: make user_directory setting route 2023-08-03 08:29:12 +05:30
Girish Ramakrishnan d475df8d63 settings: rename to directory_server_config 2023-08-03 07:35:14 +05:30
Girish Ramakrishnan 92a103d635 settings: move ipv6/ipv4 config into network
this also rename sysinfo_config to ipv4_config
2023-08-03 06:40:04 +05:30
Girish Ramakrishnan f2e56cbdd8 Fix crash on startup 2023-08-03 06:39:35 +05:30
Girish Ramakrishnan c97441f7d9 settings: remove cookie secret default 2023-08-03 02:48:24 +05:30
Girish Ramakrishnan 67e4c90d37 settings: move directory server config to it's own route 2023-08-03 02:48:21 +05:30
Girish Ramakrishnan 4a34c390f8 settings: move externaldap setting 2023-08-03 02:43:26 +05:30
Girish Ramakrishnan a19e502198 settings: move dynamic dns to network
and add tests
2023-08-02 23:02:40 +05:30
Girish Ramakrishnan fccc2d04a9 settings: move support config to support 2023-08-02 23:02:40 +05:30
Girish Ramakrishnan eb4213d61d settings: cloudronId is only ever set
we use subscription API to get the cloudronId, never from database
2023-08-02 23:02:40 +05:30
Girish Ramakrishnan e0d07c3c19 settings: move branding settings into branding.js 2023-08-02 23:02:40 +05:30
Girish Ramakrishnan 85a73af303 settings: remove appstore listing config
this is not used anymore
2023-08-02 23:02:40 +05:30
Girish Ramakrishnan be4c3575fb settings: move web/api token to appstore 2023-08-02 23:02:40 +05:30
Girish Ramakrishnan e1fd369c6d settings: move cookie secret into oidc 2023-08-02 23:02:40 +05:30
Girish Ramakrishnan 77e6b69a63 settings: remove unstable apps key
it's not used anymore
2023-08-02 23:02:40 +05:30
Girish Ramakrishnan c7f2a04e8c settings: move reverse proxy config 2023-08-02 23:02:39 +05:30
Girish Ramakrishnan c4a8255fdd settings: move firewall config to network 2023-08-02 23:02:39 +05:30
Girish Ramakrishnan 8fe992318e settings: move trusted ip setting to reverseproxy 2023-08-02 23:02:39 +05:30
Johannes Zellner f2317c2a81 show filemanager button in app mounts section 2023-08-02 13:33:40 +02:00
Girish Ramakrishnan 516dd89d92 settings: list already applies default logic 2023-08-02 15:35:05 +05:30
Girish Ramakrishnan 68b4bf1667 backupformat: print the backupFilePath 2023-08-02 09:50:34 +05:30
Johannes Zellner 30880de82f filemanager: close viewer on esc 2023-08-01 18:45:24 +02:00
Girish Ramakrishnan ee836e6646 mail: 'my' location is available as mail location
move the reserve domains check to app location validation code
2023-08-01 19:33:59 +05:30
Girish Ramakrishnan 7d929aca54 rsync: fix crash 2023-08-01 19:03:24 +05:30
Girish Ramakrishnan e65c1fb718 graphs: show old backup size and location if > 1GB 2023-08-01 18:44:27 +05:30
Girish Ramakrishnan 0722692210 graphs: always show /var/backups size
often this has old backups
2023-08-01 17:38:48 +05:30
Johannes Zellner 28dab0bc9b dashboard: add separator between disks 2023-08-01 14:01:57 +02:00
Girish Ramakrishnan 54e33a0ece graphs: no disk speed for network disks 2023-08-01 17:17:10 +05:30
Girish Ramakrishnan 80bf8e3ffe Update packages 2023-08-01 11:42:58 +05:30
Johannes Zellner 8e10477170 Add direcotry server tests for member and uniquemember attributes 2023-07-31 13:19:42 +02:00
Johannes Zellner 650966a7e5 directoryserver: Add member and uniquemember attributes
https://datatracker.ietf.org/doc/html/rfc4519#section-2.17
https://datatracker.ietf.org/doc/html/rfc4519#section-2.40
2023-07-31 13:13:07 +02:00
Johannes Zellner 65769e5701 ldap uses lower-case attributes 2023-07-31 13:12:39 +02:00
Johannes Zellner 7099102a79 filemanager: do not rely on history when closing viewers 2023-07-31 11:31:27 +02:00
Girish Ramakrishnan 740e69c8dd change redirections to 301 2023-07-31 06:04:49 +05:30
Johannes Zellner 72ccac2753 frontend: update pankow for dragndrop fixes 2023-07-30 19:43:31 +02:00
Johannes Zellner ae5748ffd1 frontend: update pankow 2023-07-30 13:53:52 +02:00
Girish Ramakrishnan 4a522ce99b cloudflare: key type selector should be first 2023-07-30 15:53:47 +05:30
Johannes Zellner b3916622e8 filemanager: bring some drag'n'drop functionality via pankow 2023-07-28 19:31:53 +02:00
Johannes Zellner 56e1f53890 Fix oidc tests after removing logoutRedirectUri 2023-07-28 16:47:10 +02:00
Girish Ramakrishnan 1f4c71dcd6 tests: configure apps needs an array 2023-07-28 14:46:31 +05:30
Girish Ramakrishnan 0ab4bc543f Fix backup.download tests 2023-07-28 13:15:08 +05:30
Girish Ramakrishnan 99bc30ad07 Update packages 2023-07-28 09:36:02 +05:30
Girish Ramakrishnan ab67c04f27 mail: add virtual All Mail mailbox 2023-07-27 22:56:36 +05:30
Girish Ramakrishnan 041faa10d9 turn: fix config for file logging and auth 2023-07-27 17:11:55 +05:30
Johannes Zellner f67fd2bc79 dashboard: Show service memory usage percent 2023-07-27 10:46:41 +02:00
Johannes Zellner 2a7b320834 logviewer: remove extra gap in top buttons 2023-07-26 19:49:44 +02:00
Johannes Zellner 348012823b More filemanger addon fixes 2023-07-26 16:41:16 +02:00
Johannes Zellner a4e2ed2253 New sftp addon to fix permission issue when files get overwritten 2023-07-26 14:36:21 +02:00
Johannes Zellner 3eedbdd163 logviewer: fix button margins for non-app types 2023-07-26 12:53:15 +02:00
Johannes Zellner bdc07bbbc7 frontend: update dependencies bringing in list view sorting 2023-07-25 16:42:13 +02:00
Girish Ramakrishnan d9a9ae2add oidc: log which app the user logged into 2023-07-25 18:40:48 +05:30
Girish Ramakrishnan b533e5273d oidc: set authType to oidc 2023-07-25 18:40:48 +05:30
Johannes Zellner e13d905f32 Store OpenID cookie secret in settings db and make it unique per instance 2023-07-25 12:40:05 +02:00
Girish Ramakrishnan be24ed64f8 lint 2023-07-25 13:21:41 +05:30
Girish Ramakrishnan ecc4d58bb2 oidc: comment out some debugs 2023-07-25 12:31:05 +05:30
Girish Ramakrishnan 9a359a27f5 backups: download is now async 2023-07-25 10:33:03 +05:30
Girish Ramakrishnan 2bec56145e add to changes 2023-07-25 10:33:03 +05:30
Johannes Zellner e97747762e Raise login event 2023-07-24 20:49:58 +02:00
Girish Ramakrishnan 3d5c21d9ca backups: encrypted backups must have .enc extension 2023-07-24 22:25:06 +05:30
Girish Ramakrishnan febac9e8ca backups: put the dashboard domain in the backup config 2023-07-24 21:31:02 +05:30
Johannes Zellner c3574614bc filemanager: make footer render the custom branding 2023-07-24 12:07:23 +02:00
Johannes Zellner fcfc8ce66d frontend: update readme 2023-07-24 10:32:43 +02:00
Johannes Zellner 4c185fb3b4 Reconfigure apps on dashboard domain change, if they use oidc addon 2023-07-21 20:02:35 +02:00
Johannes Zellner 00b5438ec5 oidc: explicitly disable rpInitiatedLogout 2023-07-20 16:43:58 +02:00
Johannes Zellner d361962d5c dashboard: fixup pencil icons in oidc view 2023-07-20 13:40:39 +02:00
Johannes Zellner 5489285406 oidc: remove now unsupported provider logout handling 2023-07-20 13:26:07 +02:00
Johannes Zellner be4b93ea2a namecheap: ensure we don't fail if no dns records exist 2023-07-19 14:51:42 +02:00
Johannes Zellner bd2e51ba1b frontend: update pankow dependency 2023-07-19 11:48:35 +02:00
Johannes Zellner 18c54aa8c6 logviewer: hide some buttons on mobile to avoid overflow 2023-07-19 11:45:34 +02:00
Johannes Zellner 3a3972822e Update translations 2023-07-18 18:56:38 +02:00
Johannes Zellner dd750d5d68 Remove old filemanager assets 2023-07-18 18:55:44 +02:00
Johannes Zellner 978faa1f68 terminal: support ctrl+shift+c/v for copy paste 2023-07-18 18:05:07 +02:00
Johannes Zellner 024a9c6e2b Remove old logs viewer 2023-07-18 17:44:22 +02:00
Johannes Zellner ac33570645 Remove old terminal 2023-07-18 17:26:13 +02:00
Johannes Zellner 9399b430d6 terminal: remove unused placeholder element 2023-07-18 17:18:19 +02:00
Johannes Zellner 1affadad8e Use vuejs based terminal in all places 2023-07-18 12:39:18 +02:00
Johannes Zellner f2c511902c fatalError needs to be a boolean false for the dialog widget 2023-07-17 19:37:07 +02:00
Johannes Zellner 6940de7465 terminal: show fatal error for invalid appid 2023-07-17 19:33:22 +02:00
Girish Ramakrishnan 9b872bbbd6 add hyphen in notfound 2023-07-17 09:59:29 +05:30
Girish Ramakrishnan 7a71c86bd8 cloudron-setup: validate setup token upfront
this allows use to re-run setup
2023-07-16 10:33:31 +05:30
Girish Ramakrishnan 2e20d757b1 cloudron-setup: validate the setup token 2023-07-16 10:01:47 +05:30
Girish Ramakrishnan 050a82039a getBackupProviderStatus -> getProviderStatus 2023-07-15 11:00:45 +05:30
Johannes Zellner 159ff1704f Always use full origin for api origin 2023-07-14 18:45:25 +02:00
Johannes Zellner be16ad6953 Terminal: add download file dialog 2023-07-14 18:18:55 +02:00
Johannes Zellner c1b393d926 Terminal: add file upload to /tmp 2023-07-14 17:32:56 +02:00
Johannes Zellner 1f4827f5c5 terminal: improve topbar button layout 2023-07-14 16:53:12 +02:00
Johannes Zellner b239e81065 terminal: support cron/scheduler 2023-07-14 16:39:27 +02:00
Johannes Zellner ee2cd0b573 Give success buttons our color scheme 2023-07-14 16:39:12 +02:00
Johannes Zellner c3d4769956 terminal: support addon injection 2023-07-14 16:06:03 +02:00
Johannes Zellner 698a5be41a frontend: update dependencies 2023-07-14 15:44:46 +02:00
Johannes Zellner d162ffe508 First version of vuejs terminal 2023-07-14 14:48:58 +02:00
Girish Ramakrishnan 6bf7a1a2d8 Add missing ISTATE 2023-07-14 18:09:07 +05:30
Girish Ramakrishnan 1d69207e6e redis: do not list in services when disabled 2023-07-14 18:01:21 +05:30
Girish Ramakrishnan 754cb17254 Update translations 2023-07-14 17:44:03 +05:30
Girish Ramakrishnan e1ff5f1cae ui: optional redis
fixes #810
2023-07-14 12:43:32 +05:30
Girish Ramakrishnan 866cf75012 add a TODO 2023-07-14 08:34:05 +05:30
Johannes Zellner 4c24de53e4 Some layout fixes for the apps service tab 2023-07-13 17:15:10 +02:00
Johannes Zellner d75c8e2858 various filemanager and logs improvements 2023-07-13 15:37:27 +02:00
Girish Ramakrishnan 25328d884f redis: make optional
part of #810
2023-07-13 16:46:09 +05:30
Girish Ramakrishnan f34840e1a3 mail: use the new services change task type 2023-07-13 16:46:09 +05:30
Johannes Zellner 4cb017e0e1 logs: fix page title and favicon 2023-07-13 12:14:37 +02:00
Girish Ramakrishnan 519b258a25 make turn service optional
part of #810
2023-07-13 15:32:28 +05:30
Girish Ramakrishnan a2c53df042 typo 2023-07-13 12:49:58 +05:30
Girish Ramakrishnan a28ca8fed2 backups: Clean cache if anything other than limits changes 2023-07-13 12:46:42 +05:30
Girish Ramakrishnan 68e56f903d validate encryption password separately 2023-07-13 12:42:38 +05:30
Girish Ramakrishnan 95314d46e2 backup policy must be inserted 2023-07-13 12:27:44 +05:30
Girish Ramakrishnan c86059e070 backups: move limits into a sub object
fixes #817
2023-07-13 12:17:57 +05:30
Girish Ramakrishnan 1a5cbfb2a1 delete spurious mountStatus while we are at it 2023-07-13 11:10:40 +05:30
Girish Ramakrishnan 9cebde3005 backups: split config and policy
keeping them together makes the test/validation quite complicated.
for example, when policy is changed, we test the storage backends

part of #817
2023-07-13 11:07:06 +05:30
Girish Ramakrishnan 7926ff2811 test: only suppress starttask.sh output and not sudo
the remote support logic uses sudo output in tests
2023-07-13 09:13:28 +05:30
Girish Ramakrishnan 13a8926f60 sudo: suppress starttask.sh logs in test 2023-07-13 09:01:14 +05:30
Johannes Zellner 8aec0f52ba logs: some style improvments 2023-07-12 20:45:15 +02:00
Johannes Zellner 0ccbc76f31 logs: fix logline hover background for timestamp 2023-07-12 14:40:35 +02:00
Johannes Zellner 76fa45c88d logs: Remove unused import 2023-07-12 14:39:26 +02:00
Johannes Zellner 1d4a680851 Fix focus state on p-buttons 2023-07-12 14:37:50 +02:00
Johannes Zellner e9f6a163d9 Use new logsviewer 2023-07-12 14:33:57 +02:00
Johannes Zellner caa160b3fd Move filemanager/ to frontend/ 2023-07-12 14:22:58 +02:00
Johannes Zellner 9b6957b52f logs: fix autoscrolling 2023-07-12 14:16:48 +02:00
Johannes Zellner f48b04ca87 Reimplement the logsviewer in primevue 2023-07-12 13:56:10 +02:00
Girish Ramakrishnan 0ab72f5900 appdata: cannot use cifs or sshfs
Fixes #827
2023-07-11 21:37:26 +05:30
Johannes Zellner 1bf91413c4 filemanager: improve prev/next in image viewer 2023-07-11 17:27:33 +02:00
Johannes Zellner c25521cded filemanager: prevent page from reload during deletion operation 2023-07-11 15:39:08 +02:00
Johannes Zellner 783c6c20c1 filemanager: ellipse string when deleting many files 2023-07-11 15:29:14 +02:00
Girish Ramakrishnan 5beb7d7d92 Fix tests 2023-07-11 18:45:49 +05:30
Johannes Zellner 2d4e7c9c0a filemanager: Do not reload whole state on folder change 2023-07-11 15:02:37 +02:00
Johannes Zellner 39498616a6 native eventhandler can't use this 2023-07-11 15:02:37 +02:00
Johannes Zellner da4c4f5530 Update translations 2023-07-11 15:02:37 +02:00
Girish Ramakrishnan b56a7f854c remotesupport: remove superfluous sshd_config check 2023-07-11 18:09:40 +05:30
Johannes Zellner d22680bc86 filemanager: support prev/next in image viewer 2023-07-11 13:37:03 +02:00
Johannes Zellner aa00742093 filemanager: give pasting busy indicator and prevent tab closing 2023-07-11 12:38:35 +02:00
Johannes Zellner 63c5aa1984 If we have a file conflict append -copy until we don't 2023-07-11 12:26:06 +02:00
Girish Ramakrishnan 13e4093d05 test: mysql 8.0 2023-07-11 15:37:31 +05:30
Girish Ramakrishnan 4c422e48b2 check-install: print all sudo instructions at once 2023-07-11 14:58:09 +05:30
Girish Ramakrishnan 249e6ffa2c redis: add no auth warning 2023-07-11 14:19:24 +05:30
Johannes Zellner 8eadce1201 Update pankow to have some page up/down support 2023-07-10 20:35:08 +02:00
Girish Ramakrishnan b8c14b1d7f Fix translations 2023-07-10 23:23:25 +05:30
Girish Ramakrishnan e410844350 mail: validate the mail server hostname 2023-07-10 23:05:17 +05:30
Girish Ramakrishnan 0049e269d3 email: move server location to it's own card
comples #826
2023-07-10 22:29:49 +05:30
Johannes Zellner 287ad9034d filemanager: update dependencies to support selectAll 2023-07-10 17:10:29 +02:00
Girish Ramakrishnan f8ec24b973 lint 2023-07-10 20:32:53 +05:30
Johannes Zellner 2cfa5511d5 Do not require applink icons to be pngs 2023-07-10 15:56:59 +02:00
Johannes Zellner 25abd8a67d Support more favicon cases for applinks 2023-07-10 15:22:56 +02:00
Johannes Zellner 3a5d570e3c Do not update applink icon if it is not set in update 2023-07-10 14:21:06 +02:00
Girish Ramakrishnan df54ba3a0a Add AVX check in preparation for mongodb 5 2023-07-09 12:54:12 +05:30
Girish Ramakrishnan 78877f3731 Show upgrade fail message that ubuntu 18.04 is now required 2023-07-09 12:53:59 +05:30
Girish Ramakrishnan d9d38ae402 dyndns: keep going if one or more domains fail to update 2023-07-09 08:09:36 +05:30
Girish Ramakrishnan 23f0eba1bd dyndns: run as a task
this lets us display logs
2023-07-08 21:21:06 +05:30
Girish Ramakrishnan 56b7cc4041 better error message when deleting domain
Fixes #815
2023-07-08 17:48:07 +05:30
Girish Ramakrishnan 07457703b1 mail: consistently use disk size to calculate usage
In the mail overivew page, we use disk size
In the per mailbox page, we use quota size
2023-07-08 09:56:56 +05:30
Johannes Zellner 5fc0a5f9a2 filemanager: Fix BASE_URL of fallback icon when deployed 2023-07-07 17:39:43 +02:00
Johannes Zellner c0b2d61583 Give oidc login button a id for easier testing 2023-07-07 10:45:55 +02:00
Johannes Zellner d74993f6ac Use sftp 3.7.3 to fix symlink deletion 2023-07-07 10:38:17 +02:00
Girish Ramakrishnan a651aa44f4 7.5.1 changes 2023-07-07 08:22:21 +05:30
Girish Ramakrishnan cf63261760 mail: fix issue where mail usage were reported incorrectly 2023-07-07 08:15:26 +05:30
Johannes Zellner e16eba7c66 Do not use translation templates in JS due to escaping issues 2023-07-06 19:01:39 +02:00
Johannes Zellner 736829445c Remove dead code 2023-07-05 11:25:09 +02:00
Girish Ramakrishnan 20856c9ee8 Remove obsolete development section
we are now a mono repo. dashboard and hotfix tools are here.
2023-07-05 13:44:53 +05:30
Johannes Zellner f1c6130cbd Fixup linter error 2023-07-04 16:23:59 +02:00
Johannes Zellner 7443847697 Use branding cloudron name for oidc login 2023-07-04 16:23:48 +02:00
Johannes Zellner 0294859839 dashboard: only selectively apply text-stroke 2023-07-02 17:49:40 +02:00
Johannes Zellner ccb925be5d dashboard: use text-stroke instead of drop-shadow to avoid z-index breakage 2023-07-02 12:31:43 +02:00
Girish Ramakrishnan 7835533838 typo 2023-07-01 13:34:58 +05:30
Girish Ramakrishnan 779997e7fc 7.4.3 changelog
(cherry picked from commit a08ac8de1b)
2023-07-01 13:10:51 +05:30
Girish Ramakrishnan b0e2129e2f add today's release file 2023-07-01 13:08:00 +05:30
Girish Ramakrishnan f9478d1e76 postgresql: add fix for taiga 2023-06-30 22:06:23 +05:30
Girish Ramakrishnan ab2056138e Give more time to resolve 2023-06-30 19:10:23 +05:30
Girish Ramakrishnan 5f0bcf62dd dig: use built-in resolver timeout 2023-06-30 19:09:19 +05:30
Johannes Zellner 94e2ce2968 filemanager: some fixes from the pankow module 2023-06-30 15:17:43 +02:00
Girish Ramakrishnan aea58a2b76 lint 2023-06-30 18:27:18 +05:30
Johannes Zellner 5433552710 filemanager: allow pasting on non-folders to cwd 2023-06-30 14:14:51 +02:00
Johannes Zellner d2b39351b8 Clear the correct mail status notification 2023-06-29 11:35:07 +02:00
Johannes Zellner a3649ea039 filemanager: placeholder for dark theme 2023-06-26 17:55:48 +02:00
Johannes Zellner f7ca78a8a6 filemanager: Only init vue app after we fetch language files to avoid UI shaking 2023-06-26 16:35:31 +02:00
Girish Ramakrishnan 853677ab2e appstore: fix crash because of error.message access 2023-06-26 18:06:37 +05:30
Johannes Zellner 7aae3790a7 oidc: Do not support logout 2023-06-26 13:02:57 +02:00
Girish Ramakrishnan 4cd54f1026 release: make changelog case insensitive 2023-06-25 19:19:23 +05:30
Girish Ramakrishnan 0eb32b8a58 Update CHANGES 2023-06-25 16:36:55 +05:30
Girish Ramakrishnan 37e3278f23 Update mail container for haraka fixes 2023-06-25 15:52:52 +05:30
Johannes Zellner 7cee40b491 filemanager: Remove back/goup button 2023-06-22 18:56:52 +02:00
Johannes Zellner fae23bd4fc filemanager: update pankow 2023-06-22 18:12:11 +02:00
Johannes Zellner 148a189bb2 filemanager: further fix the current folder entry 2023-06-22 18:11:05 +02:00
Johannes Zellner c3778f94c4 filemanager: set correct name for activeDirectory 2023-06-22 15:51:24 +02:00
Johannes Zellner b7fbffcb42 various filemanager fixes 2023-06-22 15:20:54 +02:00
Girish Ramakrishnan 6259849958 apphealth: timeout is already in msecs 2023-06-22 18:24:59 +05:30
Johannes Zellner eb767bb3b1 filemanager: add missing colon for props 2023-06-22 13:23:43 +02:00
Johannes Zellner a6f01b2455 Ensure all filemanager buttons explicitly use Noto font 2023-06-22 12:57:04 +02:00
Johannes Zellner 4fe055c3a8 oidc: automatically submit consent form
Fixes #828
2023-06-21 13:14:45 +02:00
Girish Ramakrishnan 79d9cce2e7 Fix ptr record link 2023-06-21 16:43:03 +05:30
Johannes Zellner 9fbfdd08d8 Update translation 2023-06-20 15:33:46 +02:00
Johannes Zellner 879569c661 filemanager: show busy state when extraction is in progress 2023-06-20 15:33:26 +02:00
Johannes Zellner 5814793dc1 filemanager: Integrate download and extract logic 2023-06-20 15:21:58 +02:00
Johannes Zellner 299e40c389 Allow cors for translation 2023-06-20 10:40:27 +02:00
Johannes Zellner 38860cd70c Redirect to / on dashboard 404 2023-06-19 15:02:28 +02:00
Johannes Zellner c8fe2611ba Also fix bottom bar for password reset 2023-06-19 14:08:10 +02:00
Johannes Zellner af9175b30c Better login action bar styling 2023-06-19 13:55:58 +02:00
Johannes Zellner 35453a0c2d Translate the oidc login view 2023-06-19 11:50:53 +02:00
Johannes Zellner fd91bf0498 Update translations 2023-06-18 20:19:12 +02:00
Johannes Zellner 3b02ef5591 filemanager: inject tr() for pankow 2023-06-18 20:11:48 +02:00
Johannes Zellner 2966763e9e filemanager: pankow has translation support 2023-06-18 18:35:55 +02:00
Johannes Zellner 6d7759a1af filemanager: add translation support 2023-06-18 17:39:40 +02:00
Johannes Zellner 70e7ca395d Update filemanager dependencies 2023-06-16 17:15:09 +02:00
Johannes Zellner 922c587ca9 Fix context menu closing with new pankow version 2023-06-16 17:13:45 +02:00
Johannes Zellner a555d70868 Add real info to filemanager readme 2023-06-16 12:49:47 +02:00
Johannes Zellner 6f6907363e Dashboard login view is gone and replaced with oidc 2023-06-15 18:05:06 +02:00
Girish Ramakrishnan 77d601f0cc mailbox: fix crash when editing quota of new mailboxes 2023-06-15 20:59:25 +05:30
Johannes Zellner 8e99f67fb7 use 'development' client only if apiOrigin template value is empty 2023-06-15 16:41:14 +02:00
Johannes Zellner 9d3fa94960 Add separate password reset view 2023-06-15 16:34:58 +02:00
Johannes Zellner b6739e9d77 Support local development dashboard login 2023-06-15 15:44:16 +02:00
Johannes Zellner 33c1b4ae3b oidc: also send profile with auth code
this helps us to be a bit more conforming with google and MS oidc
provider
2023-06-14 16:49:35 +02:00
Johannes Zellner 67c0a4f513 Copy selected terminal text with ctrl shift c 2023-06-13 15:27:16 +02:00
Johannes Zellner ce1181531a Update dashboard dependencies and fixup apps icon for new fontawesome 2023-06-13 13:54:34 +02:00
Girish Ramakrishnan 54682a1370 remove duplicate require 2023-06-04 18:23:26 +02:00
Girish Ramakrishnan dc5342b9fc automation tag is better 2023-06-04 18:18:22 +02:00
Girish Ramakrishnan 83bb7c475d add devops category 2023-06-04 18:11:34 +02:00
Johannes Zellner 638bdc902b Add implicit grants for dashboard 2023-06-04 17:39:31 +02:00
Johannes Zellner 874064de67 Only store dashboard accessTokens in tokensdb 2023-06-04 17:39:31 +02:00
Johannes Zellner 1f134ff070 Skip consent screen for dashboard login 2023-06-04 17:39:31 +02:00
Johannes Zellner 2c334170bd oidc dashboard login 2023-06-04 17:39:29 +02:00
Johannes Zellner 35efdf6cbd Support both sets of Hetzner nameservers 2023-05-31 18:25:09 +02:00
Girish Ramakrishnan e02f3d7064 Fix dashboard crash when installing app with no addons 2023-05-30 11:06:33 +02:00
Girish Ramakrishnan a5e83a4d84 Expose alias domains as CLOUDRON_ALIAS_DOMAINS
This can be useful for app to set them in trusted hosts. Or alternately,
show different text when accessed from different domains.
2023-05-25 11:47:41 +02:00
Girish Ramakrishnan e6ba2a6e7a replace usage of _.extend with Object.assign 2023-05-25 11:45:14 +02:00
Johannes Zellner 79dd50910c oidc: render error page instead of raw error body 2023-05-23 12:13:55 +02:00
Johannes Zellner c4d267ecb1 filemanager: add restart logic 2023-05-23 11:38:57 +02:00
Johannes Zellner 2011dd9a83 Explicitly add noto font to filemanager assets 2023-05-23 11:08:06 +02:00
Johannes Zellner b07131cd0f oidc: add password reset link to login view 2023-05-22 20:32:33 +02:00
Johannes Zellner d3fe165e2c oidc: Remove console.log in login screen 2023-05-22 20:19:30 +02:00
Johannes Zellner bf19de3a90 Fixup filemanager links 2023-05-22 16:27:48 +02:00
Johannes Zellner 58a0b3d8e7 Ensure localPath is quoted in case it contains spaces 2023-05-21 14:14:42 +02:00
Johannes Zellner 65c2ee1760 filemanager: Add logs and terminal links for apps 2023-05-16 17:48:53 +02:00
Johannes Zellner dfb0a7fee1 filemanager: update dependencies 2023-05-16 15:34:16 +02:00
Girish Ramakrishnan 7511339656 bump timeout when waiting for container
some server disks are very slow
2023-05-16 09:51:42 +02:00
Girish Ramakrishnan cb106f8a55 Fixup text when logs are missing 2023-05-16 09:36:30 +02:00
Girish Ramakrishnan 39d45b71d7 installer: remove user creation, already in init-ubuntu script 2023-05-15 21:10:29 +02:00
Girish Ramakrishnan db1fa84936 update: log history 2023-05-15 21:08:20 +02:00
Girish Ramakrishnan f83295372b updater: combine installer logs into the task file 2023-05-15 19:09:40 +02:00
Girish Ramakrishnan e6506d9458 updater: use log 2023-05-15 19:05:39 +02:00
Johannes Zellner af63dbb31d Show error when logs are gone 2023-05-15 17:49:34 +02:00
Johannes Zellner b5641cc445 Show at least basic error if task or app not found in logviewer 2023-05-15 17:20:43 +02:00
Johannes Zellner 576fb392bb Show dashboard domain change tasks like in other sections 2023-05-15 12:02:59 +02:00
Girish Ramakrishnan ff539e2669 remove crashnotifier
it's not really used
2023-05-15 11:08:00 +02:00
Girish Ramakrishnan 506d3adf70 Fix crash when querying backup mount status 2023-05-15 10:40:39 +02:00
Girish Ramakrishnan 94eb7849fe tasks: return 404 if task not found
part of #826
2023-05-15 10:16:00 +02:00
Johannes Zellner 9036b272a8 filemanager: update pankow module 2023-05-15 10:10:47 +02:00
Johannes Zellner c81467da7c filemanager: add refresh button 2023-05-15 09:57:58 +02:00
Johannes Zellner 6db3a20021 filemanager: support fallbackIcon 2023-05-15 09:26:37 +02:00
Johannes Zellner a428d6c553 filemanager: update dependencies 2023-05-15 09:02:31 +02:00
Girish Ramakrishnan b7b01d5605 domains: show current task in renewCert, syncDns 2023-05-14 11:47:21 +02:00
Girish Ramakrishnan 500d2361ec replace delay.js with timers/promises 2023-05-14 10:53:50 +02:00
Girish Ramakrishnan 75ba20201e Update modules 2023-05-14 07:23:04 +02:00
Girish Ramakrishnan b26c8d20cd network: add trusted ips
This allows the user to set trusted ips to Cloudflare or some other CDN
and have the logs have the correct IPs.

fixes #801
2023-05-13 16:15:47 +02:00
Girish Ramakrishnan 951ed4bf33 Update translations 2023-05-13 15:46:08 +02:00
Johannes Zellner 2a05ec3866 Move password-reveal.js to correct folder 2023-05-12 18:53:42 +02:00
Johannes Zellner 04f2bd1ec3 Add password-reveal feature to oidc login 2023-05-12 18:47:48 +02:00
Johannes Zellner e08116c9ad be more consistent in oidc login screen with dashboard login 2023-05-12 18:24:54 +02:00
Johannes Zellner da7fbeee3d oidc: Give proper login error feedback 2023-05-12 17:14:40 +02:00
Johannes Zellner 61aa32d8c5 App icon route is no open to public 2023-05-12 15:14:47 +02:00
Johannes Zellner 74ff5e8de4 Fix authorize for text in oidc consent screen 2023-05-12 14:01:20 +02:00
Johannes Zellner aad70a49b7 Remove dashboard button on oidc logout 2023-05-12 13:54:35 +02:00
Johannes Zellner d332bb05fa Show app name during oidc login 2023-05-12 13:51:50 +02:00
Johannes Zellner 6b6781eabb filemanager: vue is picky about the type 2023-05-12 13:32:51 +02:00
Girish Ramakrishnan 4a1cdd4ef1 Update aws-sdk and suppress maintenance mode message
https://github.com/aws/aws-sdk-js/issues/4354
2023-05-11 22:18:00 +02:00
Johannes Zellner 764a8f6a85 filemanager: Show non-dismissable dialog on fatal error 2023-05-11 18:36:09 +02:00
Johannes Zellner 22a0b84c2a filemanager: update dependencies 2023-05-11 16:45:13 +02:00
Johannes Zellner bba911165b Remove noisy openid debugs 2023-05-11 16:22:58 +02:00
Johannes Zellner 8656bea4f2 Update oidc-provider 2023-05-11 16:16:19 +02:00
Johannes Zellner 9024844449 Set favicon for OpenId views 2023-05-11 13:48:36 +02:00
Johannes Zellner 89c5b81eb0 Add very basic initial cloudron-logs helper 2023-05-11 12:30:00 +02:00
Johannes Zellner 18a7b0e615 dashboard: use sass instead of deprecated node-sass 2023-05-11 11:29:08 +02:00
Johannes Zellner 1407fbeb8c Fix syntax error in gulpfile 2023-05-11 10:57:52 +02:00
Johannes Zellner b5fc377dab Set app's fqdn as fallback logout redirect URI for oidc 2023-05-11 10:57:52 +02:00
Girish Ramakrishnan 71af16beb9 Update packages 2023-05-11 10:33:18 +02:00
Girish Ramakrishnan 96d3eda02b dashboard: update packages 2023-05-11 08:50:18 +02:00
Girish Ramakrishnan ba2a6bab68 dashboard: remove rimraf 2023-05-11 08:48:42 +02:00
Girish Ramakrishnan 092cc40da6 Fix test 2023-05-11 08:32:31 +02:00
Girish Ramakrishnan c55152c0e1 node: update to 18.16.0 2023-05-11 08:32:31 +02:00
Girish Ramakrishnan e83bb0c639 docker: update to 23.0.6 2023-05-11 08:32:31 +02:00
Johannes Zellner 318285cb07 Support pageSize customization via localStorage 2023-05-10 13:52:41 +02:00
Girish Ramakrishnan 5274e1c454 docker: registry finally has ipv6 support
https://github.com/docker/roadmap/issues/89
2023-05-10 10:14:25 +02:00
Girish Ramakrishnan 294a535c1b cloudron-support: better formatting of log link 2023-05-10 09:11:04 +02:00
Girish Ramakrishnan eaeb80e3c0 cloudron-support: add uname and lsb_release info 2023-05-10 09:08:04 +02:00
Johannes Zellner 6eb8047686 filemanager: open unsupported types in browser itself 2023-05-09 18:53:23 +02:00
Johannes Zellner db040bf293 There is no mail for filemanager 2023-05-09 10:58:29 +02:00
Girish Ramakrishnan acfc1ede6e add to changes 2023-05-09 10:55:22 +02:00
Girish Ramakrishnan 8910c76bcf Update redis to 7.0.11 2023-05-09 10:54:17 +02:00
Johannes Zellner 342093f661 filemanager: improve resource (app/volume/mail) handling 2023-05-08 18:08:11 +02:00
Johannes Zellner 9e26db3cd2 Only show disks with the correct fs type for volumes 2023-05-08 18:07:42 +02:00
Johannes Zellner a71b39ddee Start using the new filemanager 2023-05-08 16:09:33 +02:00
Johannes Zellner 0626354844 Fixup custom disk setup for volumes 2023-05-08 15:23:25 +02:00
Johannes Zellner e9d2a53aaf Add new ionos profitbricks regions 2023-05-08 14:04:46 +02:00
Girish Ramakrishnan ca59bbe1aa remove try/catch 2023-05-08 11:30:21 +02:00
Girish Ramakrishnan f505b1a553 remove log line which ends up in log file 2023-05-07 20:53:04 +02:00
Girish Ramakrishnan a237b11ff7 timezone: set default tz to UTC 2023-05-07 20:51:02 +02:00
Johannes Zellner 9a77f012d8 filemanager: Add path breadcrumbs and update dependencies 2023-05-07 17:04:07 +02:00
Johannes Zellner 36c7f779f3 filemanager: a symlink can't be opened 2023-05-07 13:50:41 +02:00
Girish Ramakrishnan b970e90178 cloudron-support: provider not needed 2023-05-05 17:18:38 +02:00
Johannes Zellner a7ea34914d Also put new task log style for backups view 2023-05-03 16:50:07 +02:00
Johannes Zellner 19e1e5861b provide more task logs for synDNS section 2023-05-03 16:33:19 +02:00
Girish Ramakrishnan e23777a642 kill a warning from npm 2023-05-03 09:15:16 +02:00
Girish Ramakrishnan a2f47f3ee2 7.5.0 changes 2023-05-02 23:08:42 +02:00
Girish Ramakrishnan 15e0f11bb9 acme: handle LE validation type cache logic
LE stores the validation type for 60 days. So, if we authorized via http previously,
we won't get a DNS challenge for that duration.

There are two ways to fix this:
* Deactivate the challenges - https://community.letsencrypt.org/t/authorization-deactivation/19860 and https://community.letsencrypt.org/t/deactivate-authorization/189526
* Just be able to handle dns or http challenge, whatever is asked. This is what this commit does. It prefers DNS challenge when possible

Other relevant threads:

https://community.letsencrypt.org/t/flush-of-authorization-cache/188043
https://community.letsencrypt.org/t/let-s-encrypt-s-vulnerability-as-a-feature-authz-reuse-and-eternal-account-key/21687
https://community.letsencrypt.org/t/http-01-validation-cache/22529
2023-05-02 23:07:32 +02:00
Johannes Zellner 1a32ea511e Use circle icons for task log status 2023-05-02 22:16:16 +02:00
Johannes Zellner ac602dc2a9 Give option to display last 10 cert renewal task logs 2023-05-02 16:55:57 +02:00
Johannes Zellner cf3fc940d2 Put all log viewer buttons in the section headers for the backup view 2023-05-02 15:02:41 +02:00
Johannes Zellner e09cac4ea1 Apply consisten section spacing to all views 2023-05-02 14:29:52 +02:00
Johannes Zellner 7c96115ea9 set constent section spacing in domains view 2023-05-02 14:12:27 +02:00
Johannes Zellner 12de353427 Make domains view also use uib-tooltips for consistency 2023-05-02 13:58:25 +02:00
Girish Ramakrishnan 057e4db6c1 use debug instead of console.error 2023-04-30 21:49:34 +02:00
Girish Ramakrishnan 883915c9d3 backups: move mount status to separate route 2023-04-30 17:21:18 +02:00
Girish Ramakrishnan 898413bfd4 convert console.log to debug 2023-04-30 10:18:48 +02:00
Girish Ramakrishnan aa02d839a7 remove console.log 2023-04-30 10:18:48 +02:00
Girish Ramakrishnan a4ba3a4dd0 import: backupConfig cannot be null 2023-04-30 10:18:48 +02:00
Johannes Zellner 10283d913c filemanager: support file and folder drops 2023-04-29 16:10:34 +02:00
Johannes Zellner d2b12ff1ab oidc: discovery document is explicitly on openid/.well-known instead of .well-known 2023-04-29 14:09:31 +02:00
Girish Ramakrishnan 1664533e14 Better text for total domain count 2023-04-29 11:02:07 +02:00
Johannes Zellner 19247f38c5 Give better login error feedback 2023-04-28 13:10:38 +02:00
Girish Ramakrishnan d7c5e36627 sftp: delete any existing keys since we are committed to regenerating at this point in code 2023-04-27 20:03:56 +02:00
Johannes Zellner aaf31efd0f Improve oidc login popup style layout 2023-04-27 16:58:55 +02:00
Johannes Zellner 09f27ff686 filemanager: update dependencies 2023-04-27 10:15:12 +02:00
Johannes Zellner 8f25c91272 filemanager: Implement clipboard handling 2023-04-25 22:45:22 +02:00
Johannes Zellner 9c5a7eb6bb dashboard: oidc is also sso option now 2023-04-25 19:52:14 +02:00
Johannes Zellner 5b6e6a556a Apply ACLs to internal oidc clients 2023-04-25 19:35:59 +02:00
Johannes Zellner debcf9c9e9 Make oidc dashboard view translateable 2023-04-25 11:58:06 +02:00
Girish Ramakrishnan 64074b60b1 7.4.2 changes 2023-04-24 21:15:15 +02:00
Girish Ramakrishnan 2e38e1a79c nginx: refactor the config 2023-04-24 21:13:01 +02:00
Johannes Zellner 90b5d240a8 Filter internal oidc clients for rest api 2023-04-24 17:16:57 +02:00
Johannes Zellner f4e4bb97b1 Give setup more time to fail on docker ipv4 vs ipv6 detection 2023-04-24 15:31:05 +02:00
Johannes Zellner 0036bf1e2f Add addon hook to get dynamic environment variables 2023-04-24 15:29:57 +02:00
Johannes Zellner 77c370cb77 Update to new pankow version 2023-04-23 10:58:37 +02:00
Girish Ramakrishnan 7a68f4e7b9 Fix misleading pending security updates message
python3-magic is missing in DO 22.04.2 LTS

https://forum.cloudron.io/topic/9072/debugging-ubuntu-security-updates
2023-04-21 20:26:00 +02:00
Johannes Zellner 828e77ad80 Also set sso in configure accordingly for oidc 2023-04-21 15:36:05 +02:00
Johannes Zellner bd7e931674 Do not throw if oidc addon client already exists 2023-04-21 15:09:49 +02:00
Johannes Zellner 5ac8e89c8e Set some oidc addon loginRedirectUri default 2023-04-21 12:36:20 +02:00
Girish Ramakrishnan a846dc5bf1 add bunny 2023-04-21 12:14:06 +02:00
Johannes Zellner f24e8b7132 Allow csp for form action on openId connect views
Only because of chrome and https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/form-action
2023-04-19 18:45:44 +02:00
Johannes Zellner 32302e89aa filemanager: implement chown action 2023-04-17 17:51:19 +02:00
Johannes Zellner a8d2e6634f filemanager: show owner 2023-04-17 17:07:25 +02:00
Johannes Zellner 066dbb79b7 VITE BASE_URL is / if unset 2023-04-17 12:19:31 +02:00
Girish Ramakrishnan ac9f08ba2a unattended-upgrades: another log file 2023-04-17 09:40:31 +02:00
Girish Ramakrishnan b6f640aca2 unattended-upgrades: log file comment 2023-04-17 09:36:04 +02:00
Johannes Zellner f0f3525b3e Safetydance is not browser compat 2023-04-16 19:15:44 +02:00
Johannes Zellner 05065fca0e Give base url to image assets in filemanager 2023-04-16 18:51:06 +02:00
Johannes Zellner d8e9807d6d dashboard uses token not accessToken 2023-04-16 18:24:00 +02:00
Johannes Zellner db43ae0f3f Update filemanager dependencies 2023-04-16 18:21:05 +02:00
Johannes Zellner a0ef00788a Prerpare for dashboard token use 2023-04-16 18:20:07 +02:00
Johannes Zellner e4e96a6a2f Also build filemanager for dashboard into the release tarball 2023-04-16 18:08:58 +02:00
Johannes Zellner ff9381f395 Merge new filemanager 2023-04-16 18:08:10 +02:00
Johannes Zellner 5e34deab59 Implement new file and folder hoooks 2023-04-16 13:43:48 +02:00
Johannes Zellner 5636033357 Add dialogs for new file and folder 2023-04-16 13:01:25 +02:00
Girish Ramakrishnan c4f4f3e914 logs: use %o to format error
otherwise, they are printed as multi-line and this messes up tail+date formatting
2023-04-16 10:49:59 +02:00
Johannes Zellner e6f870b220 Maybe fix time date display for good 2023-04-15 19:00:01 +02:00
Johannes Zellner eeda0a2868 Hide oidc clients which are from apps 2023-04-15 17:48:54 +02:00
Johannes Zellner da38d8a045 oidc: support app addon oidc configs as normal clients 2023-04-14 22:22:04 +02:00
Johannes Zellner 5688b51abc Add oidc addon configs 2023-04-14 21:18:52 +02:00
Girish Ramakrishnan 4c475818bc syslog: restructure code 2023-04-14 20:06:28 +02:00
Girish Ramakrishnan 158ba4ea0b Merge remote-tracking branch 'syslog/master'
Merge cloudron-syslog code here
2023-04-14 19:17:36 +02:00
Johannes Zellner 2065f3b911 Implement TextEditor saving 2023-04-12 15:59:48 +02:00
Johannes Zellner 6960276ed6 Improve warning 2023-04-12 15:29:06 +02:00
Johannes Zellner d843cde7a1 Group apps and volumes in dropdown 2023-04-12 14:08:41 +02:00
Johannes Zellner c94dac769b Update version in lock file 2023-04-12 10:03:19 +02:00
Johannes Zellner 10fc8e5a28 Update manifest format to support oidc 2023-04-11 17:37:52 +02:00
Johannes Zellner 5cde58e8b7 Move file upload logic to data model 2023-04-11 16:29:58 +02:00
Johannes Zellner 6bf007f878 Support volumes 2023-04-11 12:14:47 +02:00
Girish Ramakrishnan b95427cc09 mongodb: allow more time for startup 2023-04-11 10:46:08 +02:00
Girish Ramakrishnan 04bc1e8f56 Wait double the time for container to start up 2023-04-11 09:36:09 +02:00
Girish Ramakrishnan 354eff93b7 disable slowloris prevention: https://github.com/nodejs/node/issues/47421 2023-04-10 10:35:25 +02:00
Girish Ramakrishnan d26c86f60f Fix bug where node 18 is returning 408 incorrectly with low header timeouts sporadically 2023-04-07 00:50:55 +02:00
Johannes Zellner badcc0ac2c oidc: set application_type to native to skip elaborate web redirect URIs 2023-04-06 13:28:24 +02:00
Johannes Zellner de72400706 oidc: Allow multiple redirectUris 2023-04-06 12:42:51 +02:00
Johannes Zellner d21b20fcab Dashboard with capital D 2023-04-06 10:55:41 +02:00
Johannes Zellner 7063bcda3c Set initial meta tags for dashboard pages 2023-04-06 10:45:13 +02:00
Johannes Zellner 909c68b924 Only respond to dashboardFqdn for oidc well-known 2023-04-06 10:27:37 +02:00
Johannes Zellner 48b4ebdf87 Help copying oidc urls by click selecting 2023-04-05 18:19:27 +02:00
Johannes Zellner 3b0442c972 Only serve oidc well-known from dashboard domain 2023-04-05 18:11:46 +02:00
Johannes Zellner a2c16e9442 Show all pretty timedates as 24h 2023-04-05 16:12:38 +02:00
Johannes Zellner f22ddf5006 Only require customDiskPath if we have ext4 or xfs device 2023-04-05 12:19:25 +02:00
Girish Ramakrishnan 4ad26d8874 Set timeout properly in addons (again) 2023-04-05 12:14:35 +02:00
Girish Ramakrishnan c9f0f300a6 put timeout settings when creating the server 2023-04-05 11:07:15 +02:00
Girish Ramakrishnan 61b7dfa58c log: date is iso string 2023-04-04 19:12:30 +02:00
Girish Ramakrishnan 42a4912cc7 logs: prepend date and append newline 2023-04-04 18:58:50 +02:00
Johannes Zellner 8f4c86c1b4 oidc: add clients.tokenSignatureAlgorithm 2023-04-04 16:43:10 +02:00
Johannes Zellner e27c3c4c87 Add changes 2023-04-04 11:41:03 +02:00
Johannes Zellner 187389638c oidc: add RSA-SHA256 aka rs256 signature algorithm 2023-04-04 11:32:43 +02:00
Girish Ramakrishnan f40c4b9b2c notifications: clear email status when message is empty 2023-04-04 11:26:20 +02:00
Girish Ramakrishnan ca2ebac694 Increase timeout even more 2023-04-04 10:28:15 +02:00
Girish Ramakrishnan 33996c8728 linode: add atlanta region 2023-04-04 10:12:29 +02:00
Girish Ramakrishnan 4d12a948ce Some databases are really big 2023-04-04 09:08:10 +02:00
Girish Ramakrishnan ab19e58c6d addons: timeout fix
the default value of server.requestTimeout changed to 5mins from 0 in node 18!
2023-04-04 00:20:29 +02:00
Girish Ramakrishnan cc811522e0 reverseproxy: prevent duplication of STS header 2023-04-02 20:03:57 +02:00
Girish Ramakrishnan 746d5fbf1e Fix typo (481b599628) 2023-04-02 18:19:07 +02:00
Girish Ramakrishnan 8f1c1df48f support: fix issue where app error tickets cannot be opened 2023-04-02 18:19:03 +02:00
Girish Ramakrishnan 7b70b57b37 more changes to 7.4.0 2023-04-02 17:23:13 +02:00
Johannes Zellner 3a9dd0fc84 implement clipboard store 2023-04-02 10:41:24 +02:00
Johannes Zellner 9d6749ec42 Add folderPath to model items 2023-04-02 10:41:02 +02:00
Johannes Zellner e2de107067 Patch up deletion 2023-04-02 10:06:14 +02:00
Johannes Zellner c79fc1abdd Use basic image viewer 2023-04-01 11:33:22 +02:00
Johannes Zellner fe6ffaae94 Support rename 2023-04-01 10:41:35 +02:00
Johannes Zellner 02d5de3e23 list action menu is now part of the component 2023-03-31 19:47:47 +02:00
Girish Ramakrishnan 016172ae6f release: fix path to CHANGES file 2023-03-30 10:00:24 +02:00
Johannes Zellner fd2fca10e5 Rename package to yellowtent to not clash with cli commands 2023-03-29 23:48:29 +02:00
Johannes Zellner 481b599628 Move avatar.png 2023-03-29 23:15:59 +02:00
Girish Ramakrishnan 78f22e1556 Add latest release file 2023-03-29 23:12:13 +02:00
Johannes Zellner a215f7b661 Add old release files for reference 2023-03-29 23:10:40 +02:00
Johannes Zellner 01b221d815 Add the release command 2023-03-29 23:09:15 +02:00
Johannes Zellner ba74eb6fa2 Add hotfix command 2023-03-29 22:54:47 +02:00
Girish Ramakrishnan 7af44e1fdd typo 2023-03-29 22:29:26 +02:00
Johannes Zellner cc75b4946f hook up menu open 2023-03-29 21:39:12 +02:00
Johannes Zellner c8d11fa268 Preselect first found app if nothing specified 2023-03-29 20:09:59 +02:00
Johannes Zellner d4fd0db296 Use correct import statement in login view 2023-03-29 20:09:40 +02:00
Johannes Zellner 3cff44815a Add basic preview handling and lazy loading 2023-03-29 20:02:26 +02:00
Johannes Zellner 1a2fffbf5c Fixup layout 2023-03-29 19:28:32 +02:00
Johannes Zellner 7a38225a37 Fix cwd usage 2023-03-29 17:44:52 +02:00
Girish Ramakrishnan 928e61e0f6 Revert "Only use "kill" as done in the upstream docs"
This reverts commit 829d53915d.

This breaks on Ubuntu 18

systemd[1]: /etc/systemd/system/unbound.service:12: Executable path is not absolute: kill -HUP $MAINPID
2023-03-29 11:18:44 +02:00
Girish Ramakrishnan 00767d583c Add the migration for optional addons
the implementation will come in the next patch release.
2023-03-29 10:48:01 +02:00
Johannes Zellner e9175e78bd Implement delete 2023-03-29 10:17:36 +02:00
Johannes Zellner 00f6a34afd Make confirmDialogs work 2023-03-29 09:46:07 +02:00
Johannes Zellner 4494f3525b Disable certain menu items if multiple items are selected 2023-03-28 23:53:01 +02:00
Johannes Zellner 26e01d611c Add onDelete event handler 2023-03-28 23:43:43 +02:00
Johannes Zellner 7b1a51a399 Add basic uploader 2023-03-28 23:32:44 +02:00
Johannes Zellner 1fb1eab2ca Update dependencies 2023-03-28 17:09:43 +02:00
Johannes Zellner fd39b498e5 Ensure we do not crash if apps can't be listed 2023-03-27 19:25:01 +02:00
Girish Ramakrishnan 91a1cbac3e logs: files can be missing 2023-03-27 18:53:47 +02:00
Girish Ramakrishnan e4e36ff90c make it clear it is the flipped IP 2023-03-27 12:11:59 +02:00
Girish Ramakrishnan b63d6c87ce logs: order existing logs by date 2023-03-27 11:56:51 +02:00
Girish Ramakrishnan 603f92251e refactor tail invokation into logtail.sh 2023-03-27 11:39:34 +02:00
Girish Ramakrishnan 456da972e9 stop the oidc server, if it is running 2023-03-27 11:39:34 +02:00
Girish Ramakrishnan 0c4d851492 unbound: take into account dig resolve status 2023-03-26 20:57:15 +02:00
Girish Ramakrishnan ff3029f1fb sysinfo: cache the ipv4/ipv6 for 5 mins
reduces burden on our api.cloudron.io servers

initially, i just implemented a simple value cache but the email UI, queries all the
domains in parallel. without the request caching, the cache is hardly ever used.
2023-03-26 19:59:48 +02:00
Johannes Zellner 73d8e71861 Do not show update notifier if app is in error state or stopped 2023-03-26 17:29:44 +02:00
Johannes Zellner 47bae750fc Only disable app update button if app is in error state or stopped 2023-03-26 17:29:44 +02:00
Girish Ramakrishnan 295c74a7a9 notifications: use clearAlert to clear disk space message 2023-03-26 17:20:58 +02:00
Johannes Zellner 119c987837 oidc is started on onActivated hook 2023-03-26 17:14:17 +02:00
Girish Ramakrishnan 77a9adbc39 oidc: start on activation
this is because dns setup can be done multiple times pre-activation
2023-03-26 16:50:03 +02:00
Johannes Zellner ad7e921b5e Rename oidc route test file 2023-03-26 16:41:17 +02:00
Johannes Zellner 54747dcb6c Fixup oidc client route tests 2023-03-26 16:40:52 +02:00
Girish Ramakrishnan 1f8b907bf1 tests: stop the auto-started oidc server 2023-03-26 16:34:14 +02:00
Girish Ramakrishnan fe21aa12ee Remove CBL check
From https://www.abuseat.org/ ,

"IMPORTANT TO ALL CBL users: If you were using the CBL to filter access to your mail servers or anything else, you will need to take note of several changes to the CBL that occured in January 2021. In short, the CBL infrastructure was replaced by the Spamhaus XBL structure, the lookup pages and access methods have changed. Full details on our CBL Cutover page "
2023-03-26 16:24:47 +02:00
Girish Ramakrishnan 8205beeabf notifications: make update alerts non-persistent
once acked, they remain acked. no need to keep nagging the user about them.
2023-03-26 15:12:39 +02:00
Girish Ramakrishnan 9182b01fe0 rework notifications.add 2023-03-26 14:43:10 +02:00
Girish Ramakrishnan 61ba3cbfc2 notifications: clearAlert 2023-03-26 14:18:37 +02:00
Girish Ramakrishnan 0ab73d6c5e Update modules 2023-03-26 11:21:11 +02:00
Girish Ramakrishnan 08dc83b202 mail: usage can be 0 2023-03-25 12:23:31 +01:00
Johannes Zellner 99e0979c2e oidc: use better json based file store for objects 2023-03-24 21:47:08 +01:00
Johannes Zellner 44706b9c70 Add beta tag for openid provider view and link from users view 2023-03-24 19:32:45 +01:00
Johannes Zellner 7410933f6e Cleanup prettyDate filter 2023-03-24 10:54:14 +01:00
Girish Ramakrishnan a98588d924 dyndns: update dynamic dns of apps that are updating 2023-03-24 08:55:33 +01:00
Girish Ramakrishnan e536582ff6 Looks like we use an old fontawesome 2023-03-24 05:52:50 +01:00
Girish Ramakrishnan 7707551ea9 Add no-code category 2023-03-24 05:46:54 +01:00
Johannes Zellner d3ed1c29b6 oidc: Better logout message 2023-03-24 00:04:06 +01:00
Johannes Zellner cdd5eca3d3 oidc: we only support clients with EdDSA signatures now 2023-03-23 23:52:47 +01:00
Johannes Zellner 3aa13c3090 oidc: give every Cloudron its own EdDSA key 2023-03-23 18:11:51 +01:00
Johannes Zellner 71bb41f918 oidc: Show where one logs in 2023-03-23 10:33:26 +01:00
Johannes Zellner 5d903451fa Add oidc.name and oidc.appId fields 2023-03-23 09:44:31 +01:00
Girish Ramakrishnan eae390a387 Add to changes 2023-03-23 08:18:12 +01:00
Girish Ramakrishnan 182bdfc193 cloudron-support: ip6tables 2023-03-23 08:13:12 +01:00
Johannes Zellner 4e64439870 dashboard: Show oidc logout URL 2023-03-22 13:17:48 +01:00
Johannes Zellner 41ecf14b28 oidc: also show error_description for more details 2023-03-22 12:27:16 +01:00
Johannes Zellner 9505e3a61b oidc: Only provide post_logout_redirect_uris if set 2023-03-22 11:12:50 +01:00
Johannes Zellner e822361693 fixup oidc client route tests 2023-03-21 19:39:13 +01:00
Johannes Zellner 3503ab9bb7 oidc: allow to edit client configs 2023-03-21 19:13:01 +01:00
Johannes Zellner 14bcfbeeb2 Add experimental oidc dashboard view 2023-03-21 18:54:43 +01:00
Johannes Zellner b78c773bc6 sort by -> order by 2023-03-21 17:40:06 +01:00
Johannes Zellner 4b2ee168fc oidc: better error page message 2023-03-21 15:32:59 +01:00
Johannes Zellner b1f1c06a6d oidc: return null if client can't be found 2023-03-21 15:23:45 +01:00
Johannes Zellner 1be3c722e6 add missing jquery include in oidc views 2023-03-21 15:20:30 +01:00
Johannes Zellner 8d7efc5701 oidc: Provide custom error page 2023-03-21 15:20:18 +01:00
Johannes Zellner 2315cf330f Carefully (re)start oidc server depending on dashboardFqdn 2023-03-21 14:59:28 +01:00
Johannes Zellner 22f9ffd119 Fixup many linter errors 2023-03-21 14:46:09 +01:00
Johannes Zellner 0743296bef Add eslint dev dependency for sublime-text lsp linter 2023-03-21 14:40:40 +01:00
Johannes Zellner e9fc355ac5 Move openid provider into its own express server 2023-03-21 14:39:58 +01:00
Johannes Zellner 46c233bad6 oidc: Add clients manage routes 2023-03-21 13:54:40 +01:00
Johannes Zellner e14b0a721a Set ulimit nofile for mysql test container to make it work on arch 2023-03-20 17:39:21 +01:00
Johannes Zellner 8a1cb6b9b3 Support .well-known/openid-configuration directly 2023-03-20 15:48:38 +01:00
Johannes Zellner 98b93537ac Provide custom logout views 2023-03-19 16:01:22 +01:00
Johannes Zellner a832a95a62 oidc: use the username for mapping 2023-03-19 16:01:22 +01:00
Johannes Zellner 260925229a oidc: post logout redirect uris is an array 2023-03-19 16:01:22 +01:00
Johannes Zellner 5465bbb6d7 Remove openid test client 2023-03-19 16:01:22 +01:00
Johannes Zellner 27ff2316b9 oidc: initial logout redirect URI support 2023-03-19 16:01:22 +01:00
Johannes Zellner 39f2308ba1 oidc: Attempt to replace built-in session end 2023-03-19 16:01:22 +01:00
Johannes Zellner cd2fa9478c Specify supported claims 2023-03-19 16:01:22 +01:00
Johannes Zellner 4b7e4731a8 oidc: put clients into the db 2023-03-19 16:01:22 +01:00
Johannes Zellner da77b1ae5d oidc: set route prfix for issues 2023-03-19 16:01:22 +01:00
Johannes Zellner ff697f8d33 oidc routes need settings to be loaded 2023-03-19 16:01:22 +01:00
Johannes Zellner bb5f8b6452 Allow single redirect uris 2023-03-19 16:01:22 +01:00
Johannes Zellner b792fb97d6 oidc: make clients more dynamic 2023-03-19 16:01:22 +01:00
Johannes Zellner cef34bfbb7 oidc: move routes to server.js for visibility 2023-03-19 16:01:22 +01:00
Johannes Zellner 2038a98e61 oidc: remove dead code 2023-03-19 16:01:22 +01:00
Johannes Zellner 51831e4bdf oidc: Some more claims debug 2023-03-19 16:01:22 +01:00
Johannes Zellner 9089616e85 Store oidc data in platformdata/oidc 2023-03-19 16:01:22 +01:00
Johannes Zellner df53cfb14c oidc: implement real profile claims 2023-03-19 16:01:22 +01:00
Johannes Zellner aae4acc419 oidc: Handle login without redirect from backend and set some default
ttls
2023-03-19 16:01:22 +01:00
Johannes Zellner 5e4e292b4d oidc: Remove rpInitiatedLogout again 2023-03-19 16:01:16 +01:00
Johannes Zellner 05a1cc58eb oidc: als add basic style for autorize page 2023-03-19 13:08:06 +01:00
Johannes Zellner 3b9336d3c9 oidc: Initial auth against our userdb is working 2023-03-19 13:08:06 +01:00
Johannes Zellner 57689ffdf4 oidc: apply basic style to login view 2023-03-19 13:08:06 +01:00
Johannes Zellner 36f8bfc229 Add oidc logout hooks 2023-03-19 13:08:06 +01:00
Johannes Zellner d6adbf46e6 Add initial oidc interaction pages 2023-03-19 13:08:06 +01:00
Johannes Zellner 31e900cb9c Add hooks for providing our own login UI 2023-03-19 13:08:06 +01:00
Johannes Zellner bab3de137b Fix typo 2023-03-19 13:08:06 +01:00
Johannes Zellner 4ac70d70f9 oidc: set interaction routes prefix to the same as the main oidc routes 2023-03-19 13:08:06 +01:00
Johannes Zellner 1ea76ebb60 oidc: add initial findAccount and fixup findByUid 2023-03-19 13:08:06 +01:00
Johannes Zellner 47e35d0b06 Support consume api 2023-03-19 13:08:06 +01:00
Johannes Zellner 5fcadcce9c Add initial OpenID connect support
This currently uses a fake json file storage and does not yet verify
credentials
2023-03-19 13:08:06 +01:00
Girish Ramakrishnan 33ad0829ad Add workaround for porkbun rate limit 2023-03-18 16:20:17 +01:00
Girish Ramakrishnan e38341eb85 typo 2023-03-18 10:10:27 +01:00
Girish Ramakrishnan f74e2cbee3 porkbun: cleanup implementation 2023-03-18 09:58:04 +01:00
Girish Ramakrishnan 3616fbb51c dns: add porkbun
domain setup ui
2023-03-16 20:21:39 +01:00
Girish Ramakrishnan 489b598cd6 curl|pipe makes retrying pointless
save to a temporary file so that curl retry logic can work
2023-03-16 12:04:17 +01:00
Girish Ramakrishnan 45a1122889 Revert back infra version to match 7.3
The code is not smart enough to do both infra bump and database major upgrades.
The db upgrade logic relies on the container to be running to export and re-import.
2023-03-15 21:16:08 +01:00
Girish Ramakrishnan abd6ab06de mongodb: fix restart 2023-03-14 11:59:25 +01:00
Girish Ramakrishnan e86a613d86 proxyauth: typo in basic auth validation 2023-03-14 11:35:24 +01:00
Girish Ramakrishnan ef3d23ebd9 Fix error message 2023-03-14 11:35:10 +01:00
Girish Ramakrishnan 53e9eccf72 unify totp check
the totp check is done in several places causing errors like 3552232e99

* ldap (addon)
* accesscontrol (dashboard)
* proxyauth
* directoryserver (exposed ldap)
* externalldap (the connector)

The code also makes externalldap auto-create work now across all the cases where there is a username
2023-03-12 16:01:12 +01:00
Girish Ramakrishnan 8e0d1b61af Make tests run again 2023-03-11 23:41:01 +01:00
Girish Ramakrishnan 3aa040bf01 apps: remove repository 2023-03-11 16:25:39 +01:00
Girish Ramakrishnan d242afd9fc pass debug object 2023-03-10 12:10:40 +01:00
Girish Ramakrishnan 5e606c50a4 docker: better error message when out of disk space 2023-03-10 12:09:23 +01:00
Johannes Zellner c2b1350fa0 Ensure we handle item selection context menu in filemanager correctly 2023-03-10 12:07:11 +01:00
Girish Ramakrishnan 59a8b001b7 Fix tests 2023-03-09 19:50:14 +01:00
Girish Ramakrishnan d144d6b273 Update test packages 2023-03-09 18:17:12 +01:00
Girish Ramakrishnan d2f0bb2b44 sftp: ed25519 keys 2023-03-09 11:03:13 +01:00
Girish Ramakrishnan d20958760b rename constant to have RSA in it 2023-03-09 10:36:49 +01:00
Girish Ramakrishnan d1398659a3 Move sftp to new base image 2023-03-09 09:18:26 +01:00
Girish Ramakrishnan 5d425fbce5 Update graphite 2023-03-09 01:55:12 +01:00
Girish Ramakrishnan 2402bf45f4 hold off on mongodb update because it needs avx 2023-03-09 00:44:58 +01:00
Girish Ramakrishnan b9a484f72e Update mongodb 2023-03-08 23:44:21 +01:00
Girish Ramakrishnan 8448d28f6f Implement HSTS preload
This allows browsers to query https directly instead of the initial http redirect

https://hstspreload.org/#opt-in says it should be explicitly opt in
2023-03-06 11:46:05 +01:00
Girish Ramakrishnan 5bbeb1196a add root as reserved name for gogs 2023-03-05 10:52:30 +01:00
Girish Ramakrishnan 9cd3874b57 mysql: set secure_file_priv 2023-03-02 21:20:46 +01:00
Johannes Zellner 2995f5894d Have a fallback preview of the current folder 2023-02-28 17:39:23 +01:00
Johannes Zellner 359396b2c7 Redirect / to /home in the router 2023-02-28 17:11:54 +01:00
Johannes Zellner 4f8f944282 Adjust animation 2023-02-27 00:35:20 +01:00
Johannes Zellner f0ef663691 Add example transition animation 2023-02-27 00:33:07 +01:00
Johannes Zellner 680d31688f Set default font to Noto Sans 2023-02-27 00:23:11 +01:00
Johannes Zellner 3374f6a4c2 Ensure monaco editor loads fine during development 2023-02-27 00:10:55 +01:00
Johannes Zellner 1f16ca7e01 Add basic text editor 2023-02-26 23:34:31 +01:00
Johannes Zellner d7c3a6cec9 Some history handling 2023-02-26 15:00:16 +01:00
Johannes Zellner c87e0b16f1 Add back button 2023-02-26 02:55:19 +01:00
Johannes Zellner ef71cd93a4 Allow to select app and activate items 2023-02-26 01:45:57 +01:00
Girish Ramakrishnan 03a77ddf01 Fix validation of hostPath
When adding a volume, this comes in mountOptions. The hostPath in the
database is the computed host path.
2023-02-25 23:41:11 +01:00
Girish Ramakrishnan 5f6ae93106 Remove repository type from listing
we will build the community repo later, if need be
2023-02-25 20:22:09 +01:00
Girish Ramakrishnan abacc60181 tls: fix wildcard alias cert file names
also, do not provision redirect certs. redirect domains can never
hit the server anyway.
2023-02-25 20:22:09 +01:00
Girish Ramakrishnan dbbe93955c acme2: add bare domain to altNames when requesting wildcard cert
this is primarily to support DoT + ClientID. the adguard package
can now use this cert when the DoT port is enabled.

we thought of adding a "dot: true" flag for the manifest. that flag
would request a special wildcard cert as well as setup the dns. setting
up the dns is complicated ux wise because it would be totally hidden
from the user. It's better they add an alias and thus we make things
a bit more explicit (what if user was using the wildcard domain for something
else etc).
2023-02-25 20:22:09 +01:00
Johannes Zellner bfeea414d8 Use sftp 3.6.2 2023-02-25 15:38:41 +01:00
Johannes Zellner c0a0c9c660 Integrate with new pankow 2023-02-25 03:18:07 +01:00
Girish Ramakrishnan edf87739fc eventlog: only prune login and logout events 2023-02-25 01:20:43 +01:00
Girish Ramakrishnan 6f9529fecd only remove node_modules of dashboard 2023-02-25 00:55:50 +01:00
Girish Ramakrishnan f807ba5dde Fixup hotfix script after merge 2023-02-25 00:01:36 +01:00
Girish Ramakrishnan af66cef6c2 Merge remote-tracking branch 'dashboard/master' 2023-02-24 23:40:15 +01:00
Johannes Zellner 96be3a1b46 Use MainLayout 2023-02-24 13:39:31 +01:00
Johannes Zellner a588605f13 Add more example code 2023-02-23 13:16:21 +01:00
Johannes Zellner 691d19a484 Update dependencies 2023-02-22 20:10:05 +01:00
Johannes Zellner debfd48236 Move more stuff to Pankow 2023-02-22 19:31:12 +01:00
Johannes Zellner e7b5cf7b23 Add basic header component 2023-02-22 16:20:07 +01:00
Johannes Zellner dafc8dea19 Stop using script setup feature but use olden style 2023-02-22 15:59:23 +01:00
Girish Ramakrishnan 582994b9d6 addons: stable IPv4 addresses
give addons static IPv4 so one can reliably connect from outside via
SSH tunnel
2023-02-21 12:20:44 +01:00
Girish Ramakrishnan 8c59528cc2 eventlog: keep 3 months 2023-02-21 10:38:15 +01:00
Johannes Zellner 669b042107 Reactive vars can be const 2023-02-19 17:17:47 +01:00
Johannes Zellner ae1936a5f6 error and busy are reactive 2023-02-19 17:16:33 +01:00
Johannes Zellner f981819447 Initial commit 2023-02-19 17:13:33 +01:00
Girish Ramakrishnan 3c09c4801e Add danish translation 2023-02-11 10:26:53 +01:00
Girish Ramakrishnan f76b33522d cloudflare: default proxied checkbox 2023-02-11 10:26:30 +01:00
Girish Ramakrishnan f9ec2bc06a cloudflare: add config for default value of proxied 2023-02-11 10:07:46 +01:00
Girish Ramakrishnan 3bdc5731ea syncDns: sync secondary dns records 2023-02-08 23:16:48 +01:00
Girish Ramakrishnan c33266ce03 dyndns: update secondary/redirect/alias domains as well 2023-02-08 23:07:53 +01:00
Girish Ramakrishnan 3bfddd8586 add vultr regions 2023-02-06 22:27:04 +01:00
Girish Ramakrishnan 465d035a1f Update exoscale regions 2023-02-06 22:17:52 +01:00
Girish Ramakrishnan 0e0017da10 scaleway: add warsaw 2023-02-06 22:15:25 +01:00
Girish Ramakrishnan fcf9d390c8 spaces: add syd1 2023-02-06 22:12:25 +01:00
Girish Ramakrishnan 6cf9576ff4 aws: add more s3 regions 2023-02-06 22:06:39 +01:00
Girish Ramakrishnan f30e28b263 ugh, typo 2023-02-03 11:28:20 +01:00
Johannes Zellner e448bf3de0 Do not crash if files cannot be loaded yet 2023-02-02 16:17:32 +01:00
Johannes Zellner a5b7972be7 Only track platform status if Cloudron is registered 2023-02-02 15:12:37 +01:00
Johannes Zellner 72113c718b Show correct error when email is invalid in setup 2023-02-02 15:05:58 +01:00
Girish Ramakrishnan d4be2b54a2 typo 2023-02-02 11:32:42 +01:00
Girish Ramakrishnan e856681b3a typo 2023-02-01 21:52:15 +01:00
Girish Ramakrishnan c07c8b5bb8 ubuntu 18: systemd kill ends up killing the script itself
This is because KillMode=control-group by default
2023-02-01 18:50:45 +01:00
Girish Ramakrishnan 7bbc7c2306 ubuntu 18: ExecReload does not work 2023-02-01 17:28:05 +01:00
Girish Ramakrishnan c2a7e0f092 lint 2023-02-01 15:43:59 +01:00
Johannes Zellner 66e08efee7 Update translations 2023-02-01 13:50:46 +01:00
Johannes Zellner a74412976c Show disk speeds 2023-02-01 13:50:34 +01:00
Girish Ramakrishnan 54add73d2a reverseproxy: LE backdates certs by an hour
https://community.letsencrypt.org/t/valid-from-date-on-cert-off-by-1-hour/103239
2023-02-01 12:52:37 +01:00
Girish Ramakrishnan 3f70edf3ec print subject and fix notBefore parsing 2023-02-01 12:38:29 +01:00
Girish Ramakrishnan c63e0036cb typo 2023-02-01 12:28:46 +01:00
Girish Ramakrishnan 3b9486596d reverseproxy: force renewal only renews if not issued in last 5 mins
otherwise, this leads to repeated renewals in checkCerts
2023-02-01 11:18:39 +01:00
Girish Ramakrishnan eddfd20f24 reverseproxy: get dates 2023-02-01 11:05:50 +01:00
Girish Ramakrishnan 690df0e5c4 reverseproxy: add option to force renewal for e2e 2023-01-31 23:45:17 +01:00
Girish Ramakrishnan d51f62e725 7.3.6 changes
(cherry picked from commit 3e01faeca3)
2023-01-31 18:08:31 +01:00
Girish Ramakrishnan 495e54b54a cloudron.conf is long gone 2023-01-31 18:03:23 +01:00
Girish Ramakrishnan ce9e78d23b reverseproxy: fix issue where renewed certs are not written to disk 2023-01-31 17:58:28 +01:00
Girish Ramakrishnan 2759b6268e backup cleaner: use object.assign instead 2023-01-31 11:46:46 +01:00
Johannes Zellner 6f84fd3f71 Use correct error object to avoid crash 2023-01-31 11:29:55 +01:00
Girish Ramakrishnan 02b6aa93cb backup cleaner: do not delete mail snapshot 2023-01-31 10:58:51 +01:00
Girish Ramakrishnan ebd970d3f4 backup cleaner: better error messages 2023-01-31 10:56:37 +01:00
Girish Ramakrishnan d346e900ca emails: show loading when collecting usage info 2023-01-30 23:24:54 +01:00
Girish Ramakrishnan 6ed3632aed mail: quotaValue can be missing for deleted mailboxes 2023-01-30 23:18:27 +01:00
Girish Ramakrishnan af7a5d2182 updater: better error message 2023-01-30 12:54:25 +01:00
Girish Ramakrishnan 5fc92240bb proxyauth: ensure ascii in x-remote-name 2023-01-30 12:45:24 +01:00
Johannes Zellner 10e07fa300 Add disk speeds to disk usage data 2023-01-27 21:05:25 +01:00
Johannes Zellner 016e0e8809 Give correct error if appstore login requires 2fa 2023-01-27 12:15:03 +01:00
Johannes Zellner 995bad9750 keys are called outside angular 2023-01-26 20:02:31 +01:00
Johannes Zellner 430e72a3ef Close texteditor in filemanager on ESC 2023-01-26 19:26:52 +01:00
Johannes Zellner 4a38fa1238 Add pagination and search filter for domains if there are more than 10 2023-01-26 19:04:17 +01:00
Johannes Zellner e46b35d0cf Fix initial disk selection dropdown 2023-01-26 14:20:11 +01:00
Girish Ramakrishnan 2b260c873f cname fix again
e4d9dbb558 left out this line by mistake
2023-01-26 12:55:38 +01:00
Girish Ramakrishnan 1cb019573b aws: add melbourne 2023-01-26 12:50:36 +01:00
Johannes Zellner 22208b9fa6 Always return all box backups 2023-01-26 12:42:05 +01:00
Girish Ramakrishnan 2506c77c48 more 7.3.5 changes 2023-01-25 15:16:23 +01:00
Girish Ramakrishnan ea8e6d3969 Fix task names 2023-01-25 10:06:35 +01:00
Girish Ramakrishnan e5c3dff910 mailboxes: do not let mail usage block loading everything else 2023-01-25 10:03:12 +01:00
Girish Ramakrishnan e4d9dbb558 dns: resolve cname records using unbound
cname record can be external and the original NS may not respond to
recursive queries
2023-01-25 09:57:57 +01:00
Girish Ramakrishnan 84c677f696 add comment 2023-01-24 18:32:00 +01:00
Johannes Zellner 3543c0b237 Provide a dropdown for disk mounting 2023-01-24 16:18:42 +01:00
Johannes Zellner 917b6d113b lsblk output changes based on query flags 2023-01-24 15:59:18 +01:00
Johannes Zellner 8298e26881 Only list ext4 block devices 2023-01-24 15:59:18 +01:00
Girish Ramakrishnan b2d072f2e6 backups: always test the mount
It's possible that the current credentials do not work. For example,
CIFS is disabled in hetzner's control panel. In such cases, we skip the
mount check and then fail later in some filesystem error. This misleads
the user.

https://forum.cloudron.io/topic/8391/cloudronbackup-folder-disappears-when-trying-to-restore
2023-01-24 15:06:15 +01:00
Girish Ramakrishnan d9db12590f email: better spacing for cloudflare warning 2023-01-24 13:58:55 +01:00
Johannes Zellner 8ab7a4ff58 Stay compatible with ubuntu's util-linux package 2023-01-23 18:50:13 +01:00
Johannes Zellner a6fdb96fbf Add route to list all blockdevices 2023-01-23 17:56:01 +01:00
Girish Ramakrishnan 935cc556df restore: encrypt file names checkbox only shown with password 2023-01-23 10:40:39 +01:00
Girish Ramakrishnan 3dcd4f9da3 typo 2023-01-23 10:20:19 +01:00
Girish Ramakrishnan 69d4404b05 mail: update haraka to 3.0.1 2023-01-23 09:48:02 +01:00
Girish Ramakrishnan 4aa67ba1f8 mysql: fix default collation during restore 2023-01-20 18:03:11 +01:00
Johannes Zellner 2cca9c8a90 Add some backup schedulePattern tests 2023-01-19 19:05:44 +01:00
Johannes Zellner deb318d764 Set mail location for tests to work 2023-01-19 18:23:25 +01:00
Johannes Zellner 3552232e99 Support 2fa for proxy auth 2023-01-19 13:42:51 +01:00
Johannes Zellner c3730d3132 Do not allow to submit empty backup schedule hours or days 2023-01-19 12:43:11 +01:00
Girish Ramakrishnan 62183c2e0e restore: change Remote Path to Backup Path 2023-01-19 10:16:27 +01:00
Girish Ramakrishnan 433985241a Various fixes to import UI 2023-01-17 13:51:21 +01:00
Girish Ramakrishnan 093fc98ae5 s3: add listing check
This is needed for situations like in cloudflare where the endpoint can
be mistakenly configured with the bucket name like https://xx.r2.cloudflarestorage.com/cloudron-backups .
The upload and del calls work but list and copy does not.
2023-01-17 11:13:03 +01:00
Girish Ramakrishnan 40bcfdba76 s3: throw any copy errors 2023-01-17 11:00:03 +01:00
Johannes Zellner 41b03e3fef Ensure ldap client always has an error handler 2023-01-12 14:39:58 +01:00
Girish Ramakrishnan e9168092f7 remove broken link 2023-01-10 21:31:45 +01:00
Girish Ramakrishnan eeaa6ebccb backups: add idrive-e2 2023-01-10 11:21:34 +01:00
Girish Ramakrishnan 0523960cc2 more changes 2023-01-10 11:09:51 +01:00
Girish Ramakrishnan 399388fe9a backups: add idrive e2 2023-01-10 11:08:51 +01:00
Johannes Zellner 0a34ace16a Allow proxy auth login pages to load the font from the dashboard 2023-01-09 22:53:35 +01:00
Johannes Zellner 43437fc6e8 Use the same stylesheet as the dashboard 2023-01-09 22:10:04 +01:00
Johannes Zellner 183d4c026f Support proxyAuth for proxy app 2023-01-09 21:51:32 +01:00
Johannes Zellner 829d53915d Only use "kill" as done in the upstream docs
https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecReload=
2023-01-09 20:18:51 +01:00
Johannes Zellner 144fc7b7be Ubuntu 18 does not have /usr/bin/kill 2023-01-09 20:12:30 +01:00
Johannes Zellner 20cec7d5ef Fixup location conflict message for bare domain 2023-01-09 13:27:02 +01:00
Johannes Zellner 1aa4e43773 Fun category is gone again 2023-01-05 17:18:14 +01:00
Johannes Zellner 796c0ec598 Revert "Add fun category"
This reverts commit 19833e1a53.
2023-01-05 17:17:05 +01:00
Johannes Zellner e4ef77ced3 Update more translations 2023-01-05 16:21:19 +01:00
Johannes Zellner cee7037ecd Update translations 2023-01-05 16:16:01 +01:00
Johannes Zellner 19833e1a53 Add fun category 2023-01-05 16:15:51 +01:00
Johannes Zellner 15e4ceeb76 Use new postgres addon 5.0.1 2022-12-29 16:15:00 +01:00
Girish Ramakrishnan 4d5d6c6eb4 Update mail image 2022-12-28 14:46:52 +01:00
Girish Ramakrishnan 68f4f1ba85 contabo: network can be real slow 2022-12-24 15:04:45 +01:00
Girish Ramakrishnan 04c23e2867 Make storage quota slider start from 500M 2022-12-24 15:02:23 +01:00
Girish Ramakrishnan a68782d66b tpo 2022-12-24 14:48:46 +01:00
Girish Ramakrishnan 3d2e9bd448 init-ubuntu: more logs 2022-12-24 11:54:30 +01:00
Girish Ramakrishnan 5ff10503ab Update packages 2022-12-24 11:38:57 +01:00
Girish Ramakrishnan 6596ce9557 storage provider is plural 2022-12-24 11:10:24 +01:00
Girish Ramakrishnan 7be0739141 registry log message 2022-12-23 17:19:52 +01:00
Johannes Zellner abb21281d1 Update chart.js 2022-12-23 07:23:14 +01:00
Johannes Zellner 06f06b8725 Update xtermjs to 5.1.0
After https://github.com/xtermjs/xterm.js/issues/4338
2022-12-23 07:10:49 +01:00
Girish Ramakrishnan ae30fe25d7 unbound: disable controller interface explicitly
https://github.com/NLnetLabs/unbound/issues/806
2022-12-22 11:11:33 +01:00
Johannes Zellner 707d73a3b2 Use mongosh instead of mongo cli in webterminal 2022-12-20 17:23:11 +01:00
Johannes Zellner 64b852d444 Fixup package lock 2022-12-20 16:19:51 +01:00
Johannes Zellner 611f08c056 Add paginated fetching for app backups 2022-12-19 17:10:43 +01:00
Johannes Zellner 16574c7c5e Fixup initial subscription handling when not yet registered 2022-12-14 10:15:21 +01:00
Girish Ramakrishnan d5793bc7c0 Fix crash in RBL check 2022-12-08 23:53:21 +01:00
Girish Ramakrishnan 2346a1c501 better error message when group not found 2022-12-08 10:29:02 +01:00
Girish Ramakrishnan d7d43c73fe reverseproxy: fix typo in regexp matching 2022-12-08 10:05:36 +01:00
Girish Ramakrishnan d4db845e0d Update translations 2022-12-08 09:57:23 +01:00
Girish Ramakrishnan a198d1ea8d 7.3.5 changes 2022-12-08 08:54:06 +01:00
Girish Ramakrishnan 67cde5a62c du: fix crash when filesystem is cifs/nfs/sshfs 2022-12-08 08:52:50 +01:00
Girish Ramakrishnan c26a3786fb mail: update container base image 2022-12-06 13:50:41 +01:00
Girish Ramakrishnan eedb239acf postgresl: upgrade to 14 2022-12-06 11:52:09 +01:00
Girish Ramakrishnan 2bcd8e64aa addons: update base images of addons
* mysql
* redis
* turn
2022-12-06 10:39:57 +01:00
Girish Ramakrishnan 38bf284806 Update base image to 4.0.0 (ubuntu jammy) 2022-12-05 12:27:04 +01:00
Johannes Zellner d126f056fc Start with a default to not fail if no swap is present 2022-12-05 12:20:42 +01:00
Johannes Zellner 136efd66e5 Handle unlimited memory in app view 2022-12-02 19:06:06 +01:00
Johannes Zellner db5e0b8fdf Disallow jupyter hub on demo 2022-11-30 21:36:29 +01:00
Girish Ramakrishnan d547bad17a 7.3.4 changes 2022-11-30 21:19:03 +01:00
Girish Ramakrishnan 36ddb8c7c2 prune: normalize the tag 2022-11-30 21:12:00 +01:00
Johannes Zellner b6ca187fd3 Reduce platform status polling to 5sec 2022-11-30 21:07:55 +01:00
Johannes Zellner fc08c45add Show notification if platform status is not Ready 2022-11-30 20:54:58 +01:00
Girish Ramakrishnan 6c9aa1a77f Revert "prune all images instead of parsing output"
This reverts commit d42c524a46.

This caused a bug that all app images are getting removed since we remove
all containers on infra update!
2022-11-30 20:00:51 +01:00
Girish Ramakrishnan 27dec3f61e bump test version 2022-11-30 19:56:51 +01:00
Johannes Zellner 1848c922c1 Remove unused that 2022-11-30 19:55:39 +01:00
Girish Ramakrishnan 79cb8ef251 add route to get platform status 2022-11-30 19:54:32 +01:00
Girish Ramakrishnan f27847950c reverseproxy: notify cert change only in cron job
notifying this in ensureCertificate does not work if provider changed in the middle anyway.
might as well get them to be in sync in the cronjob.

this change also resulted in tls addon getting restarted non-stop if you change from wildcard
to non-wildcard since ensureCertificate notifies the change.
2022-11-30 15:55:32 +01:00
Girish Ramakrishnan 69b46d82ab Fix typo 2022-11-30 14:56:40 +01:00
Girish Ramakrishnan 2a660fa59d change terminology to running and unresponsive 2022-11-30 14:41:48 +01:00
Girish Ramakrishnan e942b8fe7e better debugs 2022-11-30 13:08:05 +01:00
Girish Ramakrishnan 1c3ef36a47 typo in graphite version 2022-11-30 10:37:28 +01:00
Girish Ramakrishnan d42c524a46 prune all images instead of parsing output
nothing is really lost since these are just unused images
2022-11-30 10:01:50 +01:00
Girish Ramakrishnan 15cc624fa5 do string compare in certs 2022-11-30 09:59:19 +01:00
Girish Ramakrishnan 7e1c56161d reverseproxy: notify services immediately
there are 2 cases where certs change (in db):
* LE cert is new or renewed
* fallback cert changes with fallback provider

if something is off i.e we crashed midway of above, then user can click the
rebuild button.
2022-11-29 18:27:08 +01:00
Girish Ramakrishnan 77a5f01585 reverseproxy: rebuild only when needed
re-creating nginx configs is only needed in 3 cases:
* provider changes. we create a rebuild file for this
* nginx config is somehow corrupt by external changes. user can click ui button

on startup, dashboard also always creates the nginx configs. so it's always up to provide the button
2022-11-29 18:17:53 +01:00
Girish Ramakrishnan c8698d5090 set rebuild to true when renewing 2022-11-29 18:12:51 +01:00
Girish Ramakrishnan 3aa3cb6e39 tls: remove any old location certs 2022-11-29 17:58:51 +01:00
Girish Ramakrishnan 302f975d5c handle type mismatch 2022-11-29 17:13:58 +01:00
Girish Ramakrishnan d23c65a7e7 reverseproxy: cert/key/csr are all pem
just use strings instead of binary/string confusion
2022-11-29 14:33:52 +01:00
Girish Ramakrishnan 1cf613dca6 Fix name of wildcard alias domain cert and configs 2022-11-29 13:35:17 +01:00
Girish Ramakrishnan 3242d82e94 Hide the usage info when no du data 2022-11-29 12:36:15 +01:00
Girish Ramakrishnan fd814a0d1f app: handle no du data yet 2022-11-29 12:26:33 +01:00
Girish Ramakrishnan 89127e1df7 reverseproxy: rework cert logic
9c8f78a059 already fixed many of the cert issues.

However, some issues were caught in the CI:

* The TLS addon has to be rebuilt and not just restarted. For this reason, we now
  move things to a directory instead of mounting files. This way the container is just restarted.

* Cleanups must be driven by the database and not the filesystem . Deleting files on disk or after a restore,
  the certs are left dangling forever in the db.

* Separate the db cert logic and disk cert logic. This way we can sync as many times as we want and whenever we want.
2022-11-29 11:07:23 +01:00
Girish Ramakrishnan c844be5be1 make validateLocations return error 2022-11-28 22:16:22 +01:00
Girish Ramakrishnan e15c6324e4 getDuplicateErrorDetails does not need domain map 2022-11-28 22:14:10 +01:00
Girish Ramakrishnan b70572a6e9 dns: fqdn only needs domain string
This is from the caas days, when we had hyphenated subdomains flag
2022-11-28 21:56:25 +01:00
Girish Ramakrishnan cab7409d85 mail: update haraka 2022-11-24 18:27:33 +01:00
Girish Ramakrishnan ce00165e41 Update containterd
this possible fixes stuck containers - https://github.com/containerd/containerd/issues/6772
2022-11-24 14:49:12 +01:00
Girish Ramakrishnan 38312b810a add note 2022-11-24 01:21:32 +01:00
Girish Ramakrishnan 9477e0bbb5 Fix crash when accessing memory_stats 2022-11-24 00:40:40 +01:00
Girish Ramakrishnan 4c6f7de10a more debug messages 2022-11-23 22:03:18 +01:00
Girish Ramakrishnan 28f3b697a1 tokens: add test for readonly token 2022-11-23 18:16:03 +01:00
Girish Ramakrishnan f728971479 add test that only owner can open tickets 2022-11-23 17:56:24 +01:00
Girish Ramakrishnan 30fb1aa351 proxy: do not set Host header when proxying
The default when proxying is $proxy_host.

Proxied apps must used X-Forwarded-Host header to determine the intended
target. I think we overwrote the Host header back in the day because apps
had varied support for this. Ideally, it can be removed across all our configurations.
2022-11-23 16:50:38 +01:00
Johannes Zellner a5d244b593 Add tests for proxy app upstreamUri 2022-11-23 14:36:57 +01:00
Girish Ramakrishnan 817e950d47 Fix upstreamUri verification 2022-11-23 12:58:17 +01:00
Girish Ramakrishnan 258eea4318 Fix appstore-test 2022-11-22 22:14:59 +01:00
Girish Ramakrishnan 1b0c33fc73 Fix system-test 2022-11-22 21:38:22 +01:00
Johannes Zellner 1d4eae8f14 Better align remaining disk space label 2022-11-22 20:17:54 +01:00
Girish Ramakrishnan 1d56bcb2e0 Update node to 16.18.1 2022-11-22 19:29:54 +01:00
Johannes Zellner 3396e4dee1 Avoid double fetching in filemanager and thus avoid flickering 2022-11-22 17:57:43 +01:00
Johannes Zellner 46248b8940 Give filename more space to the left 2022-11-22 17:35:47 +01:00
Johannes Zellner bbd5da6049 Only update the breadcrumbs if a path is opened 2022-11-22 17:34:17 +01:00
Johannes Zellner 9a90f5a403 Show swapfiles separate 2022-11-22 12:18:05 +01:00
Johannes Zellner 35ea3b1575 Also include potential swap files in the disk usage stats 2022-11-22 12:15:17 +01:00
Johannes Zellner 7482c699f8 center backup actions 2022-11-22 10:55:35 +01:00
Girish Ramakrishnan c639559a6d Update docker 20.10.21
many users reporting hangs in docker, maybe this solves it
2022-11-21 13:20:49 +01:00
Girish Ramakrishnan 784110b8a1 mail: fix display of quota 2022-11-21 10:02:09 +01:00
Girish Ramakrishnan b437466f8c mail: send quota value as raw bytes 2022-11-21 09:45:17 +01:00
Girish Ramakrishnan 3b8221190d Better error mesasge 2022-11-20 18:16:16 +01:00
Girish Ramakrishnan 250d54f157 postgresql: fix issue with pg_ctl timing out 2022-11-20 18:05:37 +01:00
Girish Ramakrishnan 5d0309f1ca reverseproxy: check renewal against cert instead of the files 2022-11-17 16:40:14 +01:00
Girish Ramakrishnan 00771d8197 reverseproxy: move dashboard config to subdir as well 2022-11-17 15:50:34 +01:00
Girish Ramakrishnan 641752a222 reverseproxy: remove getAcmeApiOptions 2022-11-17 12:39:23 +01:00
Girish Ramakrishnan e3b0d3960a reverseproxy: create configs in subdirectories for easy management 2022-11-17 12:16:11 +01:00
Girish Ramakrishnan cd90864bc3 typos 2022-11-17 11:46:29 +01:00
Girish Ramakrishnan 23cc0d6f0e acme2: do not pass around paths 2022-11-17 11:44:36 +01:00
Girish Ramakrishnan 51f43597bc Make location have subdomain just like in the database 2022-11-17 10:22:46 +01:00
Girish Ramakrishnan 28b5457e9c Fix validateLocations return value 2022-11-17 10:22:46 +01:00
Girish Ramakrishnan 35076b0e93 use vhost naming for nginx config terminology 2022-11-17 10:22:46 +01:00
Girish Ramakrishnan 293b8a0d34 remove location type from nginx filename
this will keep it consistent with upcoming cert filenames
2022-11-17 10:22:46 +01:00
Girish Ramakrishnan 0c8b8346f4 Move getLocationsSync into apps.js 2022-11-17 10:22:43 +01:00
Girish Ramakrishnan 8c2a1906ba Add to changes 2022-11-17 08:00:44 +01:00
Girish Ramakrishnan 720bafaf02 logrotate: only keep 14 days of logs
https://unix.stackexchange.com/questions/261696/logrotation-rotate-and-maxage-command
https://blog.gsterling.de/2017/10/03/logrotate-misconceptions-about-maxsize-and-size/
2022-11-17 00:47:39 +01:00
Johannes Zellner 30c84fc140 Set LANG in webterminal 2022-11-16 16:17:09 +01:00
Johannes Zellner 0b6bbf4cc2 Set exec LANG via rest API only 2022-11-16 16:14:54 +01:00
Girish Ramakrishnan 013e15e361 reverseproxy: do deep compare in tlsConfig
wildcard field might change
2022-11-16 16:04:26 +01:00
Johannes Zellner 9da4f55754 Set default LANG in exec container to make umlauts and other special characters work 2022-11-16 15:49:06 +01:00
Girish Ramakrishnan e3642f4278 reverse proxy: rebuild configs on provider change 2022-11-16 12:42:06 +01:00
Girish Ramakrishnan 19b0d47988 remove obsolete fixme 2022-11-16 11:46:31 +01:00
Girish Ramakrishnan f82f533f36 Add SIGHUP handler to reload certs
we have to reload directory server certs out of process
2022-11-16 08:24:42 +01:00
Girish Ramakrishnan 15d5dfd406 reverseproxy: move the reload out of the write functions 2022-11-16 07:55:26 +01:00
Johannes Zellner 4c9b1c6a09 Update translations 2022-11-15 14:54:17 +01:00
Johannes Zellner 2cb3c918f7 Show app disk usage in storage tab 2022-11-15 14:54:07 +01:00
Johannes Zellner f5edcf90a0 Also avoid some UI flickering in subscription info section 2022-11-15 12:58:39 +01:00
Johannes Zellner 21e265e94e Avoid some subscription status flicker in navbar 2022-11-15 12:54:03 +01:00
Girish Ramakrishnan af870d0eac mail: fix dnsbl count
empty string was parsed as [''] leading the UI to think there is one zone
2022-11-14 22:06:33 +01:00
Johannes Zellner e678562d79 Disable repository selector and enable sso selector again 2022-11-14 17:21:10 +01:00
Girish Ramakrishnan 7b7e5d24de domains: update event not generated 2022-11-14 10:58:47 +01:00
Johannes Zellner b354fc6c01 Handle appstore scrollbar behavior better 2022-11-14 10:32:39 +01:00
Girish Ramakrishnan 0843baad8b reverseproxy: remove options from renewCerts 2022-11-14 08:13:47 +01:00
Girish Ramakrishnan 5e2a55ecad add debug 2022-11-13 22:10:01 +01:00
Girish Ramakrishnan c597d9fbaa add fixme 2022-11-13 21:55:13 +01:00
Girish Ramakrishnan 8b43d43e35 reverseproxy: compare the cert path on cert renewal
fqdn will not match for wildcard certs
2022-11-13 18:06:34 +01:00
Girish Ramakrishnan 5447181e41 cert: add some asserts 2022-11-13 17:27:05 +01:00
Girish Ramakrishnan 3caf77cee6 cert: add message for fallback cert 2022-11-13 16:59:22 +01:00
Girish Ramakrishnan 2515a0f18f cert: do not autoclean default cert 2022-11-13 16:56:51 +01:00
Girish Ramakrishnan 1e0795ea68 replace client.notify with inline message 2022-11-13 16:11:08 +01:00
Girish Ramakrishnan 9c8f78a059 reverseproxy: simplify certificate renewal
An issue was that mail container was not getting refreshed with the up to
date certs. The root cause is that it is refreshed only in the renewCerts()
cron job. If cert renewal was caused by an app task, then the cron job will
skip the restart (since cert is fresh).

The other issue is that we keep hitting 0 length certs when we run out of disk
space. The root cause is that when out of disk space, a cert renewal will
cause cert to be written but since it has no space it is 0 length. Then, when
the user tries to restart the server, the box code does not write the cert again.

This change fixes the above two including:
* To simplify, we use the fallback cert only if we failed to get a LE cert. Expired LE certs
  will continue to be used. nginx is fine with this.

* restart directory as well on renewal
2022-11-13 11:55:12 +01:00
Johannes Zellner fa43807eee Make volume read-only checkbox a dropdown 2022-11-12 20:49:19 +01:00
Girish Ramakrishnan f917eb8f13 rename variable 2022-11-11 16:21:28 +01:00
Johannes Zellner df4b31c024 Add missing space 2022-11-11 14:14:24 +01:00
Johannes Zellner ff87d28b20 Do not allow to send tickets for community repo apps 2022-11-11 12:15:58 +01:00
Johannes Zellner 4c21b179ea Update translations 2022-11-10 20:06:52 +01:00
Johannes Zellner ba396832ad Show package repository in app info 2022-11-10 20:06:26 +01:00
Johannes Zellner d19c7ac3e3 Return repository info in app rest api 2022-11-10 20:00:55 +01:00
Johannes Zellner 139d7c4e22 Use apps.publishedAt to filter for new apps 2022-11-10 19:54:07 +01:00
Johannes Zellner f61131babf Amend app.repository depending on presence and value of dockerImage 2022-11-10 18:12:13 +01:00
Johannes Zellner c9a69b2876 Hide the ldap filter in the appstore view for the moment 2022-11-10 17:52:24 +01:00
Johannes Zellner ea9b03f885 Add initial community package confirm modal 2022-11-10 17:44:11 +01:00
Johannes Zellner 53222919c2 Add capitalize filter 2022-11-10 17:43:50 +01:00
Girish Ramakrishnan e9eeab074a Clarify error message further 2022-11-10 13:50:28 +01:00
Girish Ramakrishnan 3477cf474f security: do not password reset mail to cloudron owned mail domain
https://forum.cloudron.io/topic/7951/privilege-escalation-through-mail-manager-role
2022-11-10 12:59:03 +01:00
Girish Ramakrishnan d49c171c79 mail: fix 100% cpu use with unreachable servers 2022-11-09 23:04:05 +01:00
Johannes Zellner 0035247618 add app repository support 2022-11-09 15:46:00 +01:00
Johannes Zellner 997c596251 Make the appstore filter toolbar work with repositories 2022-11-09 15:45:34 +01:00
Girish Ramakrishnan 3d6cdf8ff3 run disk usage task once a day 2022-11-09 15:21:53 +01:00
Johannes Zellner 7f37de0dd1 add basic repository support 2022-11-09 15:17:52 +01:00
Girish Ramakrishnan e15024f46c get previous du task if any 2022-11-09 15:04:34 +01:00
Girish Ramakrishnan 4e35df5567 lint 2022-11-09 15:04:34 +01:00
Girish Ramakrishnan 925b08c7a1 Fix log test 2022-11-06 16:17:55 +01:00
Girish Ramakrishnan 440504a6e9 add tests for both the stream 2022-11-06 15:44:04 +01:00
Girish Ramakrishnan ca44f47af3 replace split with our own LogStream
split module is archived
2022-11-06 13:44:47 +01:00
Girish Ramakrishnan 9dac5e3406 typo 2022-11-06 11:57:45 +01:00
Girish Ramakrishnan d0b7097706 rimraf is gone 2022-11-06 11:48:56 +01:00
Girish Ramakrishnan fac0a9ca5d classes are not hoisted 2022-11-06 11:44:43 +01:00
Girish Ramakrishnan b6f707955c Update packages 2022-11-06 10:27:10 +01:00
Girish Ramakrishnan 962d7030bb replace progress-stream with our implementation
upstream is mostly unmaintained
2022-11-06 10:17:14 +01:00
Girish Ramakrishnan 5af1bbfb3c once: add debug 2022-11-05 15:36:07 +01:00
Girish Ramakrishnan f2d25ff2fd remove many of the scripts 2022-11-05 15:26:56 +01:00
Girish Ramakrishnan 94327e397a remove ununsed ejs-cli 2022-11-05 15:22:27 +01:00
Girish Ramakrishnan 9f54ec47b6 remove nyc and node-sass modules 2022-11-05 15:20:39 +01:00
Girish Ramakrishnan cb85336595 remove js-yaml (unused) 2022-11-05 15:19:00 +01:00
Girish Ramakrishnan b28d559d1a remove unused tar-stream 2022-11-05 15:17:26 +01:00
Girish Ramakrishnan 4918d2099f remove json module (not used) 2022-11-05 15:15:53 +01:00
Johannes Zellner 3322a611af Collapse app backup options into dropdown 2022-11-05 14:13:17 +01:00
Johannes Zellner 06a71f77c5 Remove left over translated string 2022-11-05 13:13:29 +01:00
Girish Ramakrishnan 8a5d4e2fb0 better debugs 2022-11-05 08:43:02 +01:00
Girish Ramakrishnan aae52ec795 backups: remove periodic dumping of heap info
this has not been as useful as I expected
2022-11-05 08:32:38 +01:00
Johannes Zellner 81d3b75b9d Better indicator if a disk is also a volume 2022-11-04 22:47:51 +01:00
Johannes Zellner e97cf1ac76 Remove a volume as content if it is the volume of that disk 2022-11-04 20:53:07 +01:00
Girish Ramakrishnan 549cb92ce7 return swap listing in the disk route 2022-11-04 15:25:12 +01:00
Johannes Zellner 778c52c547 Do not show logs button for volumes in filemanager 2022-11-04 15:16:23 +01:00
Johannes Zellner 5f4b33c6f8 Do not use extra uib-collapse in volume add dialog 2022-11-04 15:01:27 +01:00
Johannes Zellner 5126dfeaf3 mute the free space label in the progress bar 2022-11-04 12:50:19 +01:00
Johannes Zellner 8fdcba55e4 Further improve disk usage layout 2022-11-04 12:05:21 +01:00
Johannes Zellner b9dc3777cf Improve disk usage display for long mount points 2022-11-04 11:55:56 +01:00
Johannes Zellner 2a91b509d4 Do not calculate used disk space in UI but use the backend value 2022-11-04 10:45:28 +01:00
Johannes Zellner c4c90cfaf9 Add route to download app backups 2022-11-04 10:24:12 +01:00
Johannes Zellner 05f29097a7 Update translations 2022-11-04 10:23:55 +01:00
Johannes Zellner e0900aeba1 Add button to download tgz backups 2022-11-04 10:23:42 +01:00
Girish Ramakrishnan ad3e593f01 mail: disallow more characters in display name 2022-11-04 08:50:47 +01:00
Girish Ramakrishnan 1c4205b714 mount: ignore filesystem type 2022-11-03 23:28:02 +01:00
Girish Ramakrishnan 7a8559ca9e 7.3.3 changes 2022-11-02 22:41:24 +01:00
Girish Ramakrishnan 8bc3b832e7 detect oom in tasks correctly 2022-11-02 22:39:25 +01:00
Girish Ramakrishnan 80a3ca0f46 remove 16.04 related task logic 2022-11-02 21:22:42 +01:00
Girish Ramakrishnan 0f0a98f7ac Add TimeoutStopSec=10s for systemctl kill to work faster 2022-11-02 18:46:20 +01:00
Girish Ramakrishnan 59783eb11b ldap: memberof is a DN and not just group name
https://ldapwiki.com/wiki/MemberOf
https://access.redhat.com/documentation/en-us/red_hat_jboss_operations_network/3.1/html/admin_initial_setup_inventory_groups_and_users/ex-ldap-authz
2022-10-30 15:07:26 +01:00
Johannes Zellner 338c89aa7f Update translations 2022-10-28 18:00:19 +02:00
Johannes Zellner 878dda4e54 Improve layout in app update view 2022-10-28 18:00:08 +02:00
Girish Ramakrishnan a2bf9180af relay: office365 wants login AUTH
https://support.microsoft.com/en-us/office/outlook-com-no-longer-supports-auth-plain-authentication-07f7d5e9-1697-465f-84d2-4513d4ff0145
2022-10-27 23:18:43 +02:00
Girish Ramakrishnan 014c63fc48 relay: office365 auth 2022-10-27 23:13:57 +02:00
Johannes Zellner e662cd7c80 If we can't fetch applink upstreamUri, just stop icon and title detection
This may happen for Cloudflare protected domains
2022-10-27 15:41:51 +02:00
Johannes Zellner 68650f0cf0 Show remaining disk space in usage graph 2022-10-26 14:44:00 +02:00
Girish Ramakrishnan 2f946de775 make cache folders always writable 2022-10-24 23:58:20 +02:00
Girish Ramakrishnan d8eb8d23bb manifest: add runtimeDirs 2022-10-24 22:34:06 +02:00
Johannes Zellner 59d90a0b9e Make users and groups available for the new app link dialog 2022-10-24 17:34:20 +02:00
Johannes Zellner 6d0557a152 Use localestring to ensure maximum fraction digits on graph ticks of 6 instead of always rounding 2022-10-21 13:27:31 +02:00
Johannes Zellner e2861f5756 Update translations 2022-10-18 23:16:23 +02:00
Johannes Zellner 0e876a7999 Improve app update view 2022-10-18 23:16:17 +02:00
Girish Ramakrishnan 17c7cc5ec7 Remove external df module
It has some parsing issues with locale
2022-10-18 19:56:18 +02:00
Girish Ramakrishnan 5e727e4311 Fix typo 2022-10-15 16:25:12 +02:00
Girish Ramakrishnan 0cddc9ca29 app: default graphs to 6 hours 2022-10-15 10:28:52 +02:00
Johannes Zellner 9c224d2b54 Only set graph stepSize for specific graphs 2022-10-14 22:22:34 +02:00
Johannes Zellner 9829a0b906 Still make sure we round to two digits in memory graph y scale 2022-10-14 21:41:48 +02:00
Johannes Zellner 76c2a978c9 Improve memory graph y axis labeling 2022-10-14 21:39:34 +02:00
Johannes Zellner 4b995bb414 Make I/O totals translatable 2022-10-14 12:43:24 +02:00
Johannes Zellner 80ede073b1 Update translations 2022-10-14 12:32:03 +02:00
Johannes Zellner ac446d5bd5 Avoid shoing empty disk usage entries for uninstalled apps 2022-10-14 12:31:53 +02:00
Johannes Zellner 5b24cdaf77 Better labeling for I/O 2022-10-14 12:22:05 +02:00
Johannes Zellner 0b8a19fd62 Show total I/O in graphs 2022-10-14 12:12:28 +02:00
Johannes Zellner 8b295fbfdb total stats are reported directly as single value 2022-10-14 12:00:24 +02:00
Johannes Zellner aae3208e5f Use new graphs api response 2022-10-14 11:50:06 +02:00
Johannes Zellner 4e47a1ad3b Clean stats api response to have specific response types 2022-10-14 11:25:43 +02:00
Johannes Zellner 8f91991e1e Also collect total I/O stats for the containers 2022-10-14 11:15:52 +02:00
Girish Ramakrishnan ae66692eda Ensure collectd directory 2022-10-14 10:43:30 +02:00
Girish Ramakrishnan 7cb326cfff no camel case in filenames 2022-10-14 08:22:04 +02:00
Johannes Zellner 0f52db5dfe More distinct graph colors 2022-10-14 01:03:00 +02:00
Johannes Zellner 1c0043feff Ensure we get more bold graph colors 2022-10-14 00:18:57 +02:00
Girish Ramakrishnan eb5c90a2e7 du: do not crash when app dir is missing
this can happen when the app is installing/uninstalling
2022-10-13 23:35:01 +02:00
Johannes Zellner 647460408a Fixup disk usage of other 2022-10-13 23:30:55 +02:00
Johannes Zellner 682db92d22 update translations 2022-10-13 23:22:22 +02:00
Johannes Zellner 76f028fcfe Show cpu graph subtext 2022-10-13 23:22:17 +02:00
Girish Ramakrishnan 91d1d0b74b add to changes 2022-10-13 23:12:20 +02:00
Girish Ramakrishnan 7985ed4b7d mail: Fix crash when setting quota 2022-10-13 23:08:08 +02:00
Johannes Zellner 2a9e177a38 Use cpuCount in graphs 2022-10-13 23:05:10 +02:00
Girish Ramakrishnan 351292ce1a graph: return sum cpu value 2022-10-13 23:03:31 +02:00
Girish Ramakrishnan ca4e1e207c return cpuCount from app/service graphs as well 2022-10-13 22:38:44 +02:00
Girish Ramakrishnan 1872cea763 graphs: do not average cpu use
Show like htop/top: cpu core count * 100
2022-10-13 22:36:20 +02:00
Johannes Zellner 6533f9e98f Always show app search bar to be consistent with filters 2022-10-13 22:27:52 +02:00
Girish Ramakrishnan 41604feb02 Fix slider steps with the unit changes 2022-10-13 22:22:12 +02:00
Johannes Zellner 60f8ab9030 Better y axis labels 2022-10-13 22:16:35 +02:00
Girish Ramakrishnan db1056112c Fix SI and Decimal unit usage
SI: For 1000, it is kB, MB, GB
IEC: For 1024, it is KiB, MiB, GiB

JEDEC: For 1024, it is KB, MB (conflicts with SI, of course)

Ultimately, what we decided is for RAM use IEC and for Disk use SI.
This is what docker does and also suggested here -
https://stackoverflow.com/questions/8632269/displaying-file-size-1000b-1kb-or-1024b-1kb
2022-10-13 21:53:11 +02:00
Johannes Zellner da1653cc77 Fixup crash if dns preflight check fails 2022-10-13 21:10:55 +02:00
Girish Ramakrishnan 4015afc69c graphs: send service graphs 2022-10-13 20:52:22 +02:00
Johannes Zellner 43300c9f69 Only show My Apps header if an app is installed 2022-10-13 20:19:58 +02:00
Johannes Zellner 5a7629f224 Add more vultr S3 regions 2022-10-13 10:40:38 +02:00
Johannes Zellner d898c16ceb Show analyze disk button if no disk data is available yet 2022-10-13 02:19:38 +02:00
Johannes Zellner 9534bfa9d5 Als show apps in system cpu graph if they consume more than 20% within the selected period 2022-10-13 01:36:29 +02:00
Johannes Zellner 813ad9f7cd Show apps using more than 1Gb within the selected period in system memory graph 2022-10-12 23:25:46 +02:00
Johannes Zellner 6d8c3febac Also add rootDSE to the directory server 2022-10-12 22:13:54 +02:00
Girish Ramakrishnan b5da4143c9 graphs: add app response in system graphs 2022-10-12 22:08:10 +02:00
Johannes Zellner c9a5e7216a Show last updated for disks and allow refresh on-demand 2022-10-12 17:05:45 +02:00
Johannes Zellner 7439a13578 Improve disk stats layout 2022-10-12 16:47:25 +02:00
Johannes Zellner 93d029f13c Hide disks graph on refresh 2022-10-12 16:27:19 +02:00
Johannes Zellner 82f915ac1c Rework the disk usage code 2022-10-12 16:26:09 +02:00
Johannes Zellner 51ecb708c7 Rework tab based sysinfo view into one wide view 2022-10-12 16:00:41 +02:00
Girish Ramakrishnan 4fe0402735 box data is separate from mail data already 2022-10-12 11:59:28 +02:00
Girish Ramakrishnan 4a3d85a269 add docker disk usage tests 2022-10-12 10:57:22 +02:00
Girish Ramakrishnan fa7c0a6e1b add disks tests 2022-10-12 10:45:29 +02:00
Girish Ramakrishnan 62d68e2733 graphs: remove the disk info 2022-10-12 10:30:02 +02:00
Girish Ramakrishnan edb6ed91fe add disk usage task 2022-10-12 10:26:21 +02:00
Girish Ramakrishnan a3f7ce15ab system: rework disks api to return by filesystem 2022-10-12 09:42:14 +02:00
Girish Ramakrishnan 4348556dc7 Fix applinks test 2022-10-12 09:37:25 +02:00
Girish Ramakrishnan deb6d78e4d bump addon timeouts 2022-10-11 23:33:35 +02:00
Girish Ramakrishnan 3c963329e9 du: exclude option 2022-10-11 23:14:50 +02:00
Johannes Zellner b88ee3ed05 Add apps with more than 1gb memory to system graph 2022-10-11 23:14:34 +02:00
Girish Ramakrishnan 656f3fcc13 add system.du 2022-10-11 23:06:54 +02:00
Girish Ramakrishnan 760301ce02 Add docker.df 2022-10-11 23:06:51 +02:00
Johannes Zellner 71f24ac10b Add system graph refresh button to allow for ocd 2022-10-11 21:36:30 +02:00
Johannes Zellner e56585df10 Fixup system memory and cpu graphs 2022-10-11 21:22:56 +02:00
Girish Ramakrishnan 6f61145b01 configurecollectd.sh is no more 2022-10-11 21:04:25 +02:00
Johannes Zellner 78f0da0b50 Do not show graph legend 2022-10-11 20:00:19 +02:00
Johannes Zellner 8c09883e56 Add 6 hour period to graphs 2022-10-11 19:28:16 +02:00
Johannes Zellner cdc11969d4 Improve graph tooltips and labelling 2022-10-11 19:25:18 +02:00
Johannes Zellner cbaf86b8c7 Use counter values for docker stats in collectd and grafana queries 2022-10-11 19:06:40 +02:00
Johannes Zellner edc7519a98 Fixup app charts an update to latest chart.js from npm 2022-10-11 18:31:03 +02:00
Girish Ramakrishnan 9d35756db5 graphs: just query graphite IP instead of localhost mapping 2022-10-11 12:44:37 +02:00
Girish Ramakrishnan 22790fd9b7 system: include only ram info for graphs
app graphs only contain ram info since that is what docker stats provides
2022-10-11 11:54:06 +02:00
Johannes Zellner ad29f51833 Fixup typo guage -> gauge in docker-stats.py 2022-10-11 10:54:53 +02:00
Girish Ramakrishnan 3caffdb4e1 Rework app stats
Previously, the du plugin was collecting data every 20 seconds but
carbon was configured to only keep data every 12 hours causing much
confusion.

In the process of reworking this, it was determined:

* No need to collect disk usage info over time. Not sure how that is useful
* Instead, collect CPU/Network/Block info over time. We get this now from docker stats
* We also collect info about the services (addon containers)
* No need to reconfigure collectd for each app change anymore since there is no per
app collectd configuration anymore.
2022-10-10 21:13:26 +02:00
Girish Ramakrishnan 2133eab341 postgresql: fix issue when restoring large dumps 2022-10-10 12:30:26 +02:00
Johannes Zellner 25379f1d21 Prevent code from crashing when DO access token contains non-ascii characters 2022-10-07 11:25:17 +02:00
Johannes Zellner 303ddf02b5 Show actual applink upstreamUri error in the UI 2022-10-06 20:03:22 +02:00
Johannes Zellner 2f8bf0e825 Better upstreamUri error feedback 2022-10-06 19:52:25 +02:00
Johannes Zellner cb8d90699b Better feedback if no applink schema is provided 2022-10-06 19:49:33 +02:00
Johannes Zellner 6e4e8bf74d Add applink upstreamUri validation 2022-10-06 19:35:07 +02:00
Johannes Zellner 458e02c0a0 Make the applink icon clear action a bit clearer 2022-10-06 19:29:35 +02:00
Johannes Zellner 87a00b9209 Fixup app link icon fetching and do not overwrite upstreamUri with redirect 2022-10-06 19:23:15 +02:00
Johannes Zellner a285ebc749 Immediately show the auto update state when directly visiting the app update section 2022-10-06 16:17:25 +02:00
Girish Ramakrishnan d51b022721 applinks: make get return null
this style matches rest of the code base
2022-10-06 11:32:42 +02:00
Girish Ramakrishnan cb9b9272cd lint 2022-10-06 11:27:12 +02:00
Girish Ramakrishnan 7dbb677af4 postgresql: move config to runtime for debuggability 2022-10-06 10:13:49 +02:00
Johannes Zellner e4c507d9b6 Some background dark-mode fix 2022-10-05 18:24:21 +02:00
Johannes Zellner 13b659c52f Move applink, proxy add buttons to appstore view 2022-10-05 17:17:22 +02:00
Girish Ramakrishnan 071202fb00 mail: log error 2022-10-04 10:57:42 +02:00
Girish Ramakrishnan f4a0460ebd support: require owner 2022-10-04 10:57:21 +02:00
Girish Ramakrishnan fc7414cce6 support: require superadmin 2022-10-04 10:25:11 +02:00
Johannes Zellner bd3a395e5f Always show new app dropdown regardless of filter 2022-10-03 21:28:49 +02:00
Girish Ramakrishnan acb92c8865 mail queue: fix search + pagination 2022-10-03 10:51:35 +02:00
Girish Ramakrishnan c3793da5bb split checkPrecondition so it can be used in cleaner as well 2022-10-02 17:41:21 +02:00
Girish Ramakrishnan 4f4a0ec289 use mount code to check mount status 2022-10-02 16:51:03 +02:00
Girish Ramakrishnan a4a9b52966 Clarify error message 2022-10-02 16:38:12 +02:00
Girish Ramakrishnan 56b981a52b backups: when checking mount status, ignore the prefix 2022-10-02 16:33:04 +02:00
Girish Ramakrishnan 074e9cfd93 rename getRootPath to getBackupRootPath 2022-10-02 16:26:27 +02:00
Girish Ramakrishnan 9d17c6606b rename to checkBackupPreconditions
since this is called only by the backup logic
2022-10-02 16:20:14 +02:00
Girish Ramakrishnan b32288050e backups: check mount status before checking available size 2022-10-02 16:16:30 +02:00
Girish Ramakrishnan d327a2efd7 Fix typo 2022-10-02 10:28:52 +02:00
Girish Ramakrishnan b2e4dc059e import: diskPath not sent when importing from xfs and ext4 2022-10-02 10:09:08 +02:00
Girish Ramakrishnan 4aab03bb07 import: cleanup app import logic 2022-10-02 10:08:50 +02:00
Girish Ramakrishnan 9f788c2c57 backup: reduce memory logs 2022-10-01 20:16:08 +02:00
Girish Ramakrishnan 84ba333aa1 app proxy: disable TLS check in app health monitor 2022-10-01 11:47:52 +02:00
Girish Ramakrishnan c07fe4195f eventlog: preserve last 2 months 2022-10-01 11:01:41 +02:00
Girish Ramakrishnan 92112986a7 7.3.1 changes 2022-10-01 08:46:13 +02:00
Johannes Zellner 68c60bf1b7 Fix some filemanager drag'n'drop with multiselect cases 2022-09-30 12:16:11 +02:00
Johannes Zellner 68498c1a70 Implement shift select in filemanager 2022-09-30 11:59:35 +02:00
Girish Ramakrishnan 29ff47ed2d move proxy section below location 2022-09-30 10:59:31 +02:00
Girish Ramakrishnan 54af286fcd app proxy: workaround for nginx not starting if upstream is down
https://sandro-keil.de/blog/let-nginx-start-if-upstream-host-is-unavailable-or-down/

without a resolver, dns names do not resolve
2022-09-30 10:36:44 +02:00
Johannes Zellner f9b7183a5e Add error handling for upstream URI in app configure 2022-09-29 19:29:38 +02:00
Girish Ramakrishnan 2dafa771f2 Fix upstreamUri event 2022-09-29 19:26:22 +02:00
Johannes Zellner e885fd0ac5 Do not specify the proxy app package version 2022-09-29 19:13:58 +02:00
Girish Ramakrishnan ed238a1b7d app proxy: remove any trailing slash 2022-09-29 18:56:30 +02:00
Girish Ramakrishnan 7b5df02a0e app proxy: validate uri 2022-09-29 18:56:10 +02:00
Johannes Zellner ade77bd8be Fix breadcrumbs 2022-09-29 18:54:10 +02:00
Johannes Zellner 1e94207ea4 Better cursor handling in filemanager 2022-09-29 18:42:40 +02:00
Johannes Zellner 3914e5be6d Remove optimization to not reload filelist on editor save 2022-09-29 18:36:33 +02:00
Girish Ramakrishnan 4f0e0706b2 backups: fix id
avoid box_box_ and mail_mail_ in backup ids
2022-09-29 18:01:19 +02:00
Johannes Zellner 6cce4dc19b Fix mimetype detection for uppercase extensions 2022-09-29 17:58:23 +02:00
Johannes Zellner 6d122e7a37 Change the app proxy dropdown icon 2022-09-29 17:54:00 +02:00
Johannes Zellner 5a02ab8aba Select entry on context menu in filemanager 2022-09-29 17:29:42 +02:00
Johannes Zellner 90ed8be1a0 Fix uploading files to root directory 2022-09-29 16:12:21 +02:00
Johannes Zellner 9a317313b3 Avoid backup id overflow in dialog 2022-09-29 16:07:43 +02:00
Johannes Zellner 6e1a5fa14e Fixup app eventlog overflow 2022-09-29 16:03:56 +02:00
Johannes Zellner c17293401b Hide app backups view for proxy app 2022-09-29 15:51:21 +02:00
Johannes Zellner 2201240ce8 Show/hide terminal and filemanager buttons depending on app support 2022-09-29 15:50:00 +02:00
Johannes Zellner c668fde616 Separate add app from add app link in dropdown 2022-09-29 12:26:58 +02:00
Girish Ramakrishnan 729def2302 Move link above proxy 2022-09-29 11:38:08 +02:00
Johannes Zellner 9fde80c389 Avoid some overflow in backup endpoint display 2022-09-28 22:46:17 +02:00
Girish Ramakrishnan 07bba206f7 remove ticks-snap-bounds in storage quota slider 2022-09-28 22:38:04 +02:00
Girish Ramakrishnan 2a55128129 mailbox: remove unlimited quota string 2022-09-28 22:35:00 +02:00
Girish Ramakrishnan 1f74febdb0 mail: do not clear eventlog on restart 2022-09-28 22:16:32 +02:00
Girish Ramakrishnan 3cd3740f92 mail: fix catchall ui 2022-09-28 22:10:43 +02:00
Girish Ramakrishnan 49bf333355 merge these changelog entries 2022-09-28 18:22:00 +02:00
Girish Ramakrishnan c4af06dd66 remove duplicate changelog entry 2022-09-28 18:21:12 +02:00
Johannes Zellner dd2fbf820a Use impersonate password selection/copy paradigm for app password and api tokens 2022-09-28 15:38:42 +02:00
Johannes Zellner 377766eee6 Do not detach img load error handler
once gone but the image fails later, the UI is broken without a refresh
The fallback icon should always load
2022-09-28 15:28:14 +02:00
Johannes Zellner f5f9a8e520 Send 404 if applink icon does not exist 2022-09-28 15:18:05 +02:00
Johannes Zellner ae376774e4 Ensure we don't put empty applink icon buffers in db 2022-09-28 15:10:17 +02:00
Johannes Zellner ff8c2184f6 Convert applink ts to timestamp 2022-09-28 14:59:30 +02:00
Johannes Zellner c957949a0a Add missing global 2022-09-28 14:24:19 +02:00
Johannes Zellner a7b056a84c Some tweaks for better app link detection logic 2022-09-28 14:23:45 +02:00
Johannes Zellner ecd6e8d52d App links are never part of a backup 2022-09-28 12:13:32 +02:00
Johannes Zellner e5430bd488 Filter app links on domain filter correctly 2022-09-28 12:06:38 +02:00
Johannes Zellner 1b889cca5f Use distinct words for app proxy and app link 2022-09-28 11:59:56 +02:00
Johannes Zellner 1a9ecebfa0 Fixup filter clear all state 2022-09-28 11:37:18 +02:00
Johannes Zellner fa8defed88 Fix typo in angular template missing bracket 2022-09-28 11:20:46 +02:00
Johannes Zellner e52a7e5553 Update translations 2022-09-28 11:18:46 +02:00
Girish Ramakrishnan 49c60c34d7 eventlog: indicate these are user entries 2022-09-27 21:30:13 +02:00
Girish Ramakrishnan 131d456329 Add cloudflare R2 2022-09-27 19:44:20 +02:00
Girish Ramakrishnan 620b37aa53 Add cloudflare r2 storage 2022-09-27 19:40:58 +02:00
Johannes Zellner 74f769f65d Move storage location definitions into common location in client.js 2022-09-27 13:31:13 +02:00
Johannes Zellner febb291421 Fixup wasabi regions 2022-09-27 12:36:56 +02:00
Girish Ramakrishnan d4bba93dbf cloudron-setup: Fix display on newline 2022-09-27 11:25:11 +02:00
Johannes Zellner 8de1befcdb Fixup Sidney -> Sydney 2022-09-27 09:14:41 +02:00
Johannes Zellner e332ad96e4 Remove duplicate changes for 7.3.0 2022-09-26 17:42:39 +02:00
Johannes Zellner 463378e9a7 API access is now radio button instead of checkbox 2022-09-26 12:44:44 +02:00
Girish Ramakrishnan c455325875 More changes 2022-09-26 09:37:49 +02:00
Girish Ramakrishnan 88e9f751ea mail: update for logging changes 2022-09-26 09:37:36 +02:00
Johannes Zellner 8677e86ace Add authorization to all routes 2022-09-24 21:27:43 +02:00
Johannes Zellner 7e166e07dc Update translations 2022-09-24 21:27:21 +02:00
Johannes Zellner ae34afe4cb Show api token scope in listing 2022-09-24 21:27:12 +02:00
Johannes Zellner cde22cd0a3 Add token scope tests in routes 2022-09-24 20:56:43 +02:00
Johannes Zellner 6d7f7fbc9a Add some more token scope tests 2022-09-24 18:52:41 +02:00
Johannes Zellner 858c85ee85 Fixup more tests 2022-09-24 18:26:31 +02:00
Johannes Zellner 15d473d506 Fixup some token tests and error handling 2022-09-24 17:29:42 +02:00
Girish Ramakrishnan 1de19b1092 mail queue: fix refresh 2022-09-23 14:14:43 +02:00
Johannes Zellner 70d3040135 Validate token scopes 2022-09-23 13:09:07 +02:00
Johannes Zellner 56c567ac86 Add token scopes 2022-09-22 22:28:59 +02:00
Johannes Zellner 9d349a038c Allow to specify token scopes 2022-09-22 21:59:10 +02:00
Johannes Zellner 16763d5e28 We don't really use console.warn() and warning() is certainly wrong 2022-09-22 21:07:47 +02:00
Girish Ramakrishnan 1f5831b79e rename queue route 2022-09-22 19:48:20 +02:00
Girish Ramakrishnan 1782a977a7 mail queue: fix details section 2022-09-22 19:46:36 +02:00
Girish Ramakrishnan 6382216dc5 mail: proxy queue routes correctly 2022-09-20 20:02:54 +02:00
Girish Ramakrishnan 92f8f9e8e5 mail queue: add actions 2022-09-20 11:17:19 +02:00
Johannes Zellner d3fee6f35b Update dependencies and remove now unnecessary webterminal resize hint 2022-09-20 08:44:57 +02:00
Johannes Zellner 81b59eae36 improve applink businesslogic tests and fixup api 2022-09-19 21:00:44 +02:00
Girish Ramakrishnan bc3cb6acb5 more changes 2022-09-19 20:56:28 +02:00
Johannes Zellner fa768ad305 Support secureserver.net nameservers from GoDaddy 2022-09-19 19:58:52 +02:00
Johannes Zellner 5184e017c9 Error the task waited for fails in tests 2022-09-19 18:20:27 +02:00
Johannes Zellner d2ea6b2002 Fixup appstore tests 2022-09-19 17:21:55 +02:00
Johannes Zellner 3fcc3ea1aa Fixup reverseproxy tests 2022-09-19 17:04:44 +02:00
Girish Ramakrishnan 15877f45b8 more changes 2022-09-19 10:42:19 +02:00
Girish Ramakrishnan 0a514323a9 Update 7.3 changes 2022-09-19 10:41:48 +02:00
Johannes Zellner 1c07ec219c Do not query disk usage for apps without localstorage 2022-09-16 17:10:07 +02:00
Johannes Zellner f25158b295 Refactor the system/graphs view logic 2022-09-16 17:09:54 +02:00
Girish Ramakrishnan 82142f3f31 mail: fix issue where signature was appended to text attachments 2022-09-16 12:40:33 +02:00
Johannes Zellner 7fbfe4ec98 Rework system graphs 2022-09-15 20:39:43 +02:00
Johannes Zellner 554dec640a Rework system graphs api 2022-09-15 16:07:08 +02:00
Girish Ramakrishnan e938aae257 Use system graphs API 2022-09-15 12:42:27 +02:00
Girish Ramakrishnan d176ff2582 graphs: move system graph queries to the backend 2022-09-15 12:40:52 +02:00
Girish Ramakrishnan bd7ee437a8 collectd: fix memory stat collection configuration
https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/memory.html#usage-in-bytes says
this is the most efficient approach for v1. It says RSS+CACHE(+SWAP) is the more accurate value.
Elsewhere in the note in https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v1/memory.html#stat-file,
it says "‘rss + mapped_file” will give you resident set size of cgroup." Overall, it's not clear how
to compute the values so we just use the file.

https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html is better. https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html#memory
says the values are separated out.
2022-09-14 18:15:26 +02:00
Girish Ramakrishnan 0d573e0213 add mail queue view 2022-09-14 18:11:20 +02:00
Girish Ramakrishnan 0250661402 Revert spurious change 2022-09-14 17:59:44 +02:00
Girish Ramakrishnan 9cef08aa6a mail relay: do not accept TLS servers
haraka can only relay via STARTTLS
2022-09-14 17:42:21 +02:00
Johannes Zellner bead9589a1 Move app graphs graphite query to backend 2022-09-14 14:39:28 +02:00
Johannes Zellner 380b41a1b4 Use explicit app graphs api 2022-09-14 14:29:59 +02:00
Johannes Zellner be72bfdb9f Share complex app link opening code between views 2022-09-13 12:39:56 +02:00
Johannes Zellner 0f2f1e1475 Fixup display of app configure button on mobile 2022-09-13 12:04:38 +02:00
Johannes Zellner 4046da9368 Make more use of app state variables 2022-09-13 11:45:10 +02:00
Johannes Zellner 403a96162b Update translations 2022-09-13 11:25:30 +02:00
Johannes Zellner 03a172d6a6 Fixup texteditor keyboard shortcut handling 2022-09-13 11:18:54 +02:00
Johannes Zellner 890f089722 Support internal dragndrop of multiple selected entries 2022-09-13 11:11:04 +02:00
Johannes Zellner 2d901b2e2b Handle app states for opening apps 2022-09-11 17:41:03 +02:00
Girish Ramakrishnan 313c871c50 mail: send fully qualified catch all 2022-09-11 14:00:48 +02:00
Girish Ramakrishnan 097cb8e87f Fix crash when no emails received yet 2022-09-11 14:00:40 +02:00
Girish Ramakrishnan c5b631c0e5 mail: catch all is already fully qualified 2022-09-11 13:49:20 +02:00
Girish Ramakrishnan 4e75694ac6 mail: require catch all to be absolute 2022-09-11 12:56:58 +02:00
Johannes Zellner c5c7592618 Use app.type instead of magic appstoreId 2022-09-09 09:29:14 +02:00
Johannes Zellner 9042cce471 Do not show usermanagement-indicator for applinks 2022-09-08 23:37:33 +02:00
Johannes Zellner ef66e9af51 Set app type for all apps not just links 2022-09-08 23:37:20 +02:00
Johannes Zellner 6125ddf51e Only show usermanagement indicator on hover but also for admins 2022-09-08 22:54:10 +02:00
Johannes Zellner f0b6293b22 Fixup clipboard usage in filemanger 2022-09-04 12:09:07 +02:00
Johannes Zellner 5d99562e63 Remove user directory domain change UI for the moment 2022-09-02 16:22:51 +02:00
Johannes Zellner 40fbea58dd Improve refresh view 2022-09-02 15:34:09 +02:00
Johannes Zellner 4984e6b2b7 Fixup drag'n'drop 2022-09-02 15:16:00 +02:00
Johannes Zellner 3b8f1c2541 Fixup folder list overflow 2022-09-02 14:42:07 +02:00
Girish Ramakrishnan 2a93c703ef mailserver: add queue routes 2022-08-31 08:45:18 +02:00
Johannes Zellner 3c92971665 If backup storage precondition is not met we want to throw 2022-08-29 22:54:23 +02:00
Johannes Zellner 536bb84ade Move new file and folder logic as well as restart to the main filemanager controller 2022-08-25 21:42:28 +02:00
Johannes Zellner 6603087f72 Move chown entries into main filemanager controller 2022-08-25 21:22:43 +02:00
Johannes Zellner 5413e52198 Move rename and extract into main filemanager controller 2022-08-25 21:10:35 +02:00
Johannes Zellner 568c4af15c text-editor dark mode fixes 2022-08-25 20:55:40 +02:00
Johannes Zellner 81b1fd7be2 btn-default dark mode fixes 2022-08-25 20:52:40 +02:00
Johannes Zellner 862841e4c1 Convert entry deletion for split view 2022-08-25 19:38:02 +02:00
Johannes Zellner 563391c2f1 remove PermitRootLogin check as we now use cloudron-support user 2022-08-25 18:53:09 +02:00
Girish Ramakrishnan d4555886f4 add note on the reason for the flag 2022-08-25 16:36:57 +02:00
Girish Ramakrishnan a584fad278 proxyAuth: add supportsBearerAuth flag
required for firefly-iii
2022-08-25 16:12:42 +02:00
Johannes Zellner 093358810b Stop handle keyevents in filetree if modal visible 2022-08-25 14:21:57 +02:00
Johannes Zellner ba9530eb32 Improve two view pane 2022-08-25 12:23:38 +02:00
Johannes Zellner 2a69b3d523 Fixup main text editor usage 2022-08-25 10:26:22 +02:00
Johannes Zellner b36fc57b5a Use better filemanager refresh icon 2022-08-24 14:31:16 +02:00
Johannes Zellner a923f80885 Improve filemanager toolbar 2022-08-24 12:47:00 +02:00
Johannes Zellner 6f1a3d2923 Add initial splitview option for filemanager 2022-08-24 12:37:35 +02:00
Girish Ramakrishnan d305d93ad8 mailbox: show quota instead of disk size
fix quota events too
2022-08-23 19:04:38 +02:00
Girish Ramakrishnan e21f39bc0b Update mail container for quota support 2022-08-23 18:48:06 +02:00
Johannes Zellner 5b97eae09a Fixup breadcrumb and eventhandling 2022-08-23 16:10:30 +02:00
Johannes Zellner 05c8de7fc4 Improve filemanager keyboard handling 2022-08-23 15:46:28 +02:00
Johannes Zellner 84ca85b315 Ensure app services like redis to be also started on restart if previously stopped 2022-08-23 11:41:08 +02:00
Johannes Zellner 0348dd2131 Stop using url hash in filemanager 2022-08-23 10:06:19 +02:00
Girish Ramakrishnan d1bdb80c72 Update mail container for quota support 2022-08-22 19:03:47 +02:00
Johannes Zellner d20f8d5e75 Fix acme refactoring 2022-08-22 12:55:43 +02:00
Johannes Zellner b2de6624fd Make email actions buttons 2022-08-21 12:22:53 +02:00
Girish Ramakrishnan 1591541c7f mail: allow aliases to have wildcard
this came out of https://forum.cloudron.io/topic/6350/disposable-email-prefixes-for-existing-mailboxes/
2022-08-18 15:22:00 +02:00
Girish Ramakrishnan 6124323d52 improve mailbox.update 2022-08-18 12:38:46 +02:00
Johannes Zellner 9179bb380e Fix quota slider 2022-08-18 11:45:46 +02:00
Girish Ramakrishnan b23189b45c mail: quota support 2022-08-18 11:31:40 +02:00
Girish Ramakrishnan 3bef8103cb mailbox: storage quota slider 2022-08-18 11:31:10 +02:00
Johannes Zellner 63812748ba Update translations 2022-08-17 11:03:18 +02:00
Johannes Zellner 1cdae2a085 Always show app some filters 2022-08-17 11:02:55 +02:00
Johannes Zellner 1bf06c6350 Add UI to change user directory domain 2022-08-16 12:40:48 +02:00
Johannes Zellner 4207ba59ef Rework app update check and apply view 2022-08-16 12:40:48 +02:00
Johannes Zellner f9ddd5c5b7 Update translations 2022-08-16 10:22:19 +02:00
Johannes Zellner bb5906e87c Add portuguese translation file 2022-08-16 10:22:07 +02:00
Girish Ramakrishnan b3cdcb2adb mandatory 2fa: redirect if the browser URL is changed directly 2022-08-16 10:01:39 +02:00
Girish Ramakrishnan 1c18c16e38 typo 2022-08-15 21:09:25 +02:00
Girish Ramakrishnan d07b1c7280 directoryServer: move out start/stop from cron 2022-08-15 21:08:22 +02:00
Girish Ramakrishnan 20d722f076 Fix test 2022-08-15 20:45:55 +02:00
Girish Ramakrishnan bb3be9f380 style 2022-08-15 20:45:55 +02:00
Girish Ramakrishnan edd284fe0b rename user directory to directory server 2022-08-15 20:45:51 +02:00
Johannes Zellner 4a2161d2b3 Responsive and dark mode fixes for apps filter bar 2022-08-15 20:06:57 +02:00
Girish Ramakrishnan b5cc7d90a9 Fix crash when cron seed file is missing 2022-08-10 22:07:05 +02:00
Johannes Zellner 929ba2069d Support port binding readOnly flag 2022-08-10 18:01:27 +02:00
Girish Ramakrishnan 251c1f9757 add readOnly attribute check for port bindings 2022-08-10 14:22:31 +02:00
Girish Ramakrishnan 03cd9bcc7c Update readOnly flag to tcpPorts and udpPorts 2022-08-10 13:57:00 +02:00
Johannes Zellner fc8572c2af Raise alert for when an app cannot be autoupdated 2022-08-10 12:19:54 +02:00
Johannes Zellner a913660aeb Ensure we have a BoxError here 2022-08-10 12:19:54 +02:00
Girish Ramakrishnan 9c82765512 parseInt returns NaN on failure 2022-08-08 20:33:41 +02:00
Johannes Zellner ea5e6d8d5a Update Russian translation 2022-08-08 20:25:49 +02:00
Johannes Zellner 520b4e1147 Give better visual feedback if filters are active and add Clear All button 2022-08-08 20:25:30 +02:00
Johannes Zellner ace96bd228 Fix stringification for debug of taskError object if set 2022-08-08 13:12:53 +02:00
Johannes Zellner af7d106a99 Add disk graph for app disk usage 2022-08-05 16:15:48 +02:00
Johannes Zellner d1e48b11a8 Update russian translation 2022-08-05 15:46:59 +02:00
Johannes Zellner 4947366aaa Filter apps in memory graph which use below 1Gb 2022-08-05 15:46:45 +02:00
Johannes Zellner 02d95810a6 Do not include proxy apps in graphs 2022-08-05 14:38:57 +02:00
Johannes Zellner a7558cadaa Avoid crash in filter for apptype link 2022-08-05 14:27:45 +02:00
Johannes Zellner aa580b404b Avoid shaky UI when appstore account is not yet fetched in settings 2022-08-05 12:02:28 +02:00
Johannes Zellner 0fcb202364 Expose groups as memberof in ldap and userdirectory 2022-08-04 11:22:16 +02:00
Johannes Zellner d4fc61810c Improve apps filter bar 2022-08-03 21:02:47 +02:00
Johannes Zellner 88eb809c6e For ldap users created on first login, make sure we also check 2fa if enabled 2022-08-03 18:20:43 +02:00
Johannes Zellner 1534eaf6f7 Fixup applink tests 2022-08-03 14:57:58 +02:00
Johannes Zellner a2a60ff426 Add support for LDAP cn=...+totptoken=.. support 2022-08-02 15:27:34 +02:00
Johannes Zellner afc70ac332 Expose twoFactorAuthenticationEnabled state of users via user directory 2022-08-02 15:27:34 +02:00
Johannes Zellner aa3fa7771c Collapse apps filters in revealable toolbar for the moment 2022-08-02 08:48:33 +02:00
Girish Ramakrishnan d5e5b64df2 cloudron-setup/motd: show ipv4 or ipv6 setup link 2022-08-01 18:32:07 +02:00
Girish Ramakrishnan 4a18ecc0ef unbound: enable ip6 2022-08-01 14:15:09 +02:00
Girish Ramakrishnan f355403412 npm: make it work with ipv6 only servers 2022-08-01 14:15:09 +02:00
Girish Ramakrishnan 985320d355 switch registry url based on ipv6 availability 2022-08-01 14:15:09 +02:00
Girish Ramakrishnan 26c9d8bc88 notification: Fix crash when backupId is null 2022-08-01 14:15:09 +02:00
Johannes Zellner fda4a179e0 Remove odd margin in multiselect filter input 2022-07-30 16:59:55 +02:00
Johannes Zellner 6d4129c4ae Update translations 2022-07-30 16:00:50 +02:00
Johannes Zellner dc90938a85 Show directory server URL for convenience 2022-07-30 16:00:42 +02:00
Girish Ramakrishnan 2b81163179 add to changes 2022-07-30 13:16:19 +02:00
Johannes Zellner 707768e00e Support user.login.ghost event type 2022-07-29 21:35:52 +02:00
Johannes Zellner f80e946769 Support ghost login event 2022-07-29 20:39:40 +02:00
Johannes Zellner 6715efca50 Distinguish ghost/impersonate logins from others 2022-07-29 20:39:18 +02:00
Johannes Zellner 612b1d6030 Also remove the virtual user and admin groups for userdirectory 2022-07-29 11:17:31 +02:00
Johannes Zellner b71254a0c3 Remove virtual user and admin groups to ldap user records 2022-07-29 11:11:53 +02:00
Johannes Zellner c0e5f60592 Also stash random minute cron tick in seed file 2022-07-29 09:15:42 +02:00
Johannes Zellner 52e01adfa8 Add more wasabi regions 2022-07-28 19:50:07 +02:00
Girish Ramakrishnan 243eea17ff Fix doc link 2022-07-27 21:38:04 +02:00
Johannes Zellner 4042f55116 Avoid much flickering in filemanager list 2022-07-27 18:23:52 +02:00
Johannes Zellner 17705da78e Clear filemanager selection on refresh 2022-07-27 18:15:53 +02:00
Johannes Zellner 48056d1e8f Fixup username error display for new users 2022-07-27 18:02:39 +02:00
Girish Ramakrishnan 64243425ce installer: suppress VERSION not found error 2022-07-27 06:16:27 +02:00
Girish Ramakrishnan 9ad7fda3cd ubuntu: do not explicitly disable ipv6
IIRC, we had this because unbound will not start up on servers with IPv6 disabled (in the kernel).
Maybe this is a thing of the past by now.
2022-07-27 06:16:03 +02:00
Girish Ramakrishnan c0eedc97ac collectd: always disable FQDNLookup 2022-07-25 17:01:49 +02:00
Johannes Zellner 5b4a1e0ec1 Make certificate cron job more predictable with persistent hourly seed 2022-07-25 15:40:49 +02:00
Johannes Zellner 5b31486dc9 Randomize certificate renewal check over a whole day 2022-07-22 19:32:43 +02:00
Johannes Zellner 2c1a0177bc Static ip backend now takes ipv4 not ip property 2022-07-22 13:00:28 +02:00
Girish Ramakrishnan 7291d5a9ec Init mailboxDisplayName correctly 2022-07-21 10:45:52 +02:00
Girish Ramakrishnan 116cde19f9 constants: location -> subdomain 2022-07-14 15:18:17 +05:30
Girish Ramakrishnan 14fc089f05 Fixup user and acme cert syncing 2022-07-14 15:04:45 +05:30
Girish Ramakrishnan 885d60f7cc reverseproxy: add setUserCertificate 2022-07-14 13:25:41 +05:30
Girish Ramakrishnan d33fd7b886 do not use bundle terminology
apparently, bundle is also like a cert chain
2022-07-14 12:39:41 +05:30
Girish Ramakrishnan ba067a959c reverseproxy: per location user certificates 2022-07-14 12:21:30 +05:30
Girish Ramakrishnan a246cb7e73 return location certificates 2022-07-14 11:57:04 +05:30
Girish Ramakrishnan f0abd7edc8 certificateJson can be null 2022-07-14 10:52:31 +05:30
Girish Ramakrishnan 127470ae59 domains: fix error handling 2022-07-14 10:35:59 +05:30
Girish Ramakrishnan efac46e40e verifyDomainConfig: just throw the error 2022-07-14 10:32:30 +05:30
Girish Ramakrishnan 6ab237034d remove superfluous validation 2022-07-13 12:06:48 +05:30
Girish Ramakrishnan 2af29fd844 cleanupCerts: add progress 2022-07-13 11:22:47 +05:30
Girish Ramakrishnan 1549f6a4d0 fix various terminology in code
subdomain, domain - strings
location - { subdomain, domain }
bundle - { cert, key }
bundlePath - { certFilePath, keyFilePath }

vhost is really just for virtual hosting
fqdn for others
2022-07-13 10:15:09 +05:30
Johannes Zellner 707eed2080 Make it more obvious that we require a secondary email for email support tickets 2022-07-12 18:13:56 +02:00
Girish Ramakrishnan 5d16aca8f4 add script to recreate containers 2022-07-12 20:51:51 +05:30
Johannes Zellner 45eedfb52c Update translations 2022-07-11 17:24:19 +02:00
Johannes Zellner 5f6348799d Make applink UI bits translatable 2022-07-11 17:24:07 +02:00
Johannes Zellner 52d80cacd0 Do not set Running states for app links 2022-07-11 16:58:10 +02:00
Johannes Zellner 490e570112 Ensure we reset the full state on applinks configure 2022-07-08 18:25:37 +02:00
Johannes Zellner 03d5d01aed Allow to change applinks icon 2022-07-08 18:07:54 +02:00
Johannes Zellner 2facc6774b applinks icon improvements 2022-07-08 18:07:52 +02:00
Johannes Zellner 67ea08e638 Allow to set access restrictions of applinks during creation 2022-07-08 16:51:04 +02:00
Johannes Zellner edd9c5bcdd Make apps plus button a dropdown 2022-07-08 15:25:42 +02:00
Johannes Zellner e800c7d282 Only list applinks a user has access to 2022-07-08 15:14:48 +02:00
Johannes Zellner 27ed07eb54 Fixup access layout 2022-07-08 15:09:02 +02:00
Johannes Zellner 56aa75e866 Add ui to support accessRestriction for applinks 2022-07-07 19:45:13 +02:00
Johannes Zellner a58228952a Support accessRestriction for visibility of applinks 2022-07-07 19:44:59 +02:00
Johannes Zellner a9cc3c7ccc Support applink tags 2022-07-07 19:15:48 +02:00
Johannes Zellner 3511856a7c support applink tags 2022-07-07 19:11:47 +02:00
Johannes Zellner 006a53dc7a Do not spam the logs on get queries 2022-07-07 18:56:21 +02:00
Johannes Zellner 45c73798b9 Fixup typo 2022-07-07 18:53:52 +02:00
Johannes Zellner c704884b10 Ensure applink label is a string 2022-07-07 18:53:27 +02:00
Johannes Zellner 7aec21d830 Support setting applink label 2022-07-07 18:53:14 +02:00
Johannes Zellner b54113ade3 Improve applink meta info detection 2022-07-07 18:19:53 +02:00
Johannes Zellner 85288714ab Refresh apps after applink changes 2022-07-07 16:55:52 +02:00
Johannes Zellner ac00225a75 Support applink update 2022-07-07 16:53:06 +02:00
Johannes Zellner e768dc62ba Add applink edit logic 2022-07-07 16:41:12 +02:00
Johannes Zellner 0474208208 Add applink removal UI 2022-07-07 16:25:04 +02:00
Johannes Zellner f43fd21929 Better applink icon support 2022-07-07 16:06:04 +02:00
Johannes Zellner 2cbb23a8d6 Also amend iconUrl for compatibility 2022-07-07 16:03:44 +02:00
Johannes Zellner c0a4e9e5bd Add initial support to add applinks 2022-07-07 13:32:20 +02:00
Johannes Zellner 741c21b368 Fixup applink routes 2022-07-07 13:01:23 +02:00
Johannes Zellner 5a26fe7361 Add applinks.js to routes/index 2022-07-07 12:44:12 +02:00
Johannes Zellner 1185dc7f79 Attempt to fetch applink icon and label from page 2022-07-07 12:36:53 +02:00
Johannes Zellner e1ac2b7b00 Add initial applink support 2022-07-06 20:37:52 +02:00
Girish Ramakrishnan e2c6672a5c better wording 2022-07-02 17:16:47 +05:30
Johannes Zellner c8da53fc80 Update xtermjs and monaco editor 2022-07-02 12:38:29 +02:00
Johannes Zellner 5c50534e21 Improve backup cleanup progress message 2022-07-01 14:18:50 +02:00
Johannes Zellner e5d6a5d381 Update french translation 2022-06-28 15:52:30 +02:00
Girish Ramakrishnan 878c5c9977 backups: add ui for filename encryption 2022-06-27 18:53:37 -07:00
Girish Ramakrishnan 55e2139c69 restore: encrypted filenames 2022-06-27 09:49:58 -07:00
Johannes Zellner ade64923f1 Improve appstore search and prioritze title and tagline matches 2022-06-27 18:03:32 +02:00
Johannes Zellner 34ff3462e9 Fixup backup_config migration script 2022-06-27 17:16:04 +02:00
Girish Ramakrishnan 104bdaf76b mail: cgroup v2 detection fix
there is crash in mail container when fts/solr is enabled
2022-06-26 14:28:22 -07:00
Girish Ramakrishnan c9f7b9a8a6 backups: make filename encryption optional 2022-06-26 09:37:22 -07:00
Girish Ramakrishnan 2e5d89be6b allow space in backup label 2022-06-24 09:18:51 -07:00
Girish Ramakrishnan bcf474aab6 redis: rebuild 2022-06-23 15:52:59 -07:00
Girish Ramakrishnan 4a779694c3 refresh updates when user enters the app configure view
check for updates, if the app has a pending update. this handles two cases:
1. user got a valid subscription. this will make the updates get the manifest field
2. user has not refreshed the ui in a while or updated via cli tool. this will ensure we are not holding to a dangling update
2022-06-23 13:06:09 -07:00
Girish Ramakrishnan dea74f05ab remove bogus logic
db-migrate always runs a migration in a transaction. so no volume
was created in case of a failure
2022-06-23 10:31:13 -07:00
Girish Ramakrishnan 69e0f2f727 7.2.5 changes
(cherry picked from commit 131f823e57)
2022-06-23 10:27:57 -07:00
Girish Ramakrishnan 080f701f33 hetzner: debug typo 2022-06-22 22:12:19 -07:00
Girish Ramakrishnan 4ab78d25f7 Fix quoting problem 2022-06-22 17:56:24 -07:00
Girish Ramakrishnan 94a196bfa0 Fix issue where only 25 group members were returned
This is because GROUP_CONCAT defaults to 1024. uuid is 40 chars.
1024/40 = ~25
2022-06-22 17:54:52 -07:00
Girish Ramakrishnan 3a63158763 rename function to setMembers 2022-06-22 17:36:19 -07:00
Girish Ramakrishnan d9c47efe1f Fix storage volume migration
Patch the migration so it runs again properly in 7.2.5

https://forum.cloudron.io/topic/7256/app-data-regression-in-v7-2-4
(cherry picked from commit c2fdb9ae3f)
2022-06-22 17:16:47 -07:00
Girish Ramakrishnan a4685f7f5a eventlog: fix typo 2022-06-22 09:30:12 -07:00
Johannes Zellner e818e5f7d5 Reload volumes in case one was created in the for loop 2022-06-22 15:32:50 +02:00
Johannes Zellner f66d9a7e7d Show automatic update section only if not custom app 2022-06-21 15:47:39 +02:00
Girish Ramakrishnan cac0933334 typo 2022-06-13 13:55:04 -07:00
Girish Ramakrishnan b74f01bb9e clourdon-setup: memory keeps going lower 2022-06-13 10:58:55 -07:00
Girish Ramakrishnan fd5a6ae288 only set upstreamUri if needed 2022-06-11 12:51:26 -07:00
Girish Ramakrishnan 1f2d596a4a 7.2.4 changes
(cherry picked from commit 61a1ac6983)
2022-06-10 13:31:46 -07:00
Girish Ramakrishnan ce06b2e150 Fix upstreamUri validation 2022-06-10 11:23:58 -07:00
Girish Ramakrishnan 9bd9b72e5d apphealthmonitor: Fix crash 2022-06-10 11:09:41 -07:00
Girish Ramakrishnan 4331640d12 Fix volume wrapping 2022-06-10 10:09:11 -07:00
Johannes Zellner 4f0784bbdc Ensure long volume names do not overflow the table 2022-06-10 12:55:23 +02:00
Johannes Zellner c4ed5edecb Move all appstore filter to the left 2022-06-10 12:31:50 +02:00
Girish Ramakrishnan a32166bc9d data dir: allow sameness of old and new dir
this makes it easy to migrate to a new volume setup
2022-06-09 17:49:33 -07:00
Girish Ramakrishnan 855628aec4 remove the "your" 2022-06-09 16:13:01 -07:00
Johannes Zellner f382b8f1f5 Set real upstreamUri for healthcheck 2022-06-09 15:04:09 +02:00
Johannes Zellner fbc7fcf04b Put healthcheck errors in app logs 2022-06-09 14:56:40 +02:00
Johannes Zellner 11d7dfa071 Accept upstreamUri as string for proxy app install 2022-06-09 14:35:05 +02:00
Johannes Zellner 6bcf6aae28 Allow to specify upstreamUri for proxy app during installation 2022-06-09 14:21:50 +02:00
Johannes Zellner 39a3d8d0cb Do not throw error if app manifest is not yet loaded 2022-06-09 14:21:32 +02:00
Johannes Zellner 923a9f6560 Rename RELAY_APPSTORE_ID to PROXY_APP_APPSTORE_ID 2022-06-09 13:57:57 +02:00
Johannes Zellner 25f44f58e3 Start task also needs to skip container starting for proxy app 2022-06-09 10:48:54 +02:00
Johannes Zellner d55a6a5eec Update reverse proxy app config on upstreamUri change 2022-06-09 10:48:54 +02:00
Johannes Zellner f854d86986 Use upstreamUri in reverseproxy config 2022-06-09 10:48:54 +02:00
Johannes Zellner 6a7379e64c Add apps.upstreamUri support 2022-06-09 10:48:54 +02:00
Johannes Zellner a955457ee7 Support proxy app 2022-06-09 10:48:54 +02:00
Girish Ramakrishnan 67801020ed mailboxDisplayName is optional 2022-06-08 14:25:16 -07:00
Girish Ramakrishnan 037f4195da guard against two level subdir moves
this has never worked since the -wholename check only works for
one level deep
2022-06-08 12:24:11 -07:00
Girish Ramakrishnan 8cf0922401 Fix container creation when migrating data dir 2022-06-08 11:52:22 -07:00
Girish Ramakrishnan 6311c78bcd Fix quoting 2022-06-08 11:25:20 -07:00
Girish Ramakrishnan 544ca6e1f4 initial xfs support 2022-06-08 10:58:00 -07:00
Girish Ramakrishnan c8b0ec64f0 Fix storage repair 2022-06-08 10:48:52 -07:00
Girish Ramakrishnan 7b28a76d69 initial XFS support 2022-06-08 10:38:54 -07:00
Girish Ramakrishnan af5d5e548e Put volume link in description 2022-06-08 10:22:59 -07:00
Girish Ramakrishnan e518d2fc41 sendmail: check for supportsDisplayName option 2022-06-08 09:56:07 -07:00
Johannes Zellner aed2645bbc Remove irrelevant styles when placed inside flexbox 2022-06-08 18:49:11 +02:00
Girish Ramakrishnan 6de198eaad sendmail: check for supportsDisplayName
it seems quite some apps don't support this. so, we need a way for the
ui to hide the field so that users are not confused.
2022-06-08 09:43:58 -07:00
Johannes Zellner 68e520cdb9 Prepare mailbox from display name field to be hidden 2022-06-08 18:42:13 +02:00
Johannes Zellner 09a39b1ebb Fixup btn-primary when background is used 2022-06-08 14:46:26 +02:00
Johannes Zellner 1a641b8904 Allow setting upstreamUri and hide irrelevant app configure tabs 2022-06-08 11:41:57 +02:00
Girish Ramakrishnan 6c67f13d90 Use bind mount instead of volume
see also c76b211ce0
2022-06-06 15:59:59 -07:00
Girish Ramakrishnan 7598cf2baf consolidate storage validation logic 2022-06-06 12:50:21 -07:00
Johannes Zellner 30fb353e4b Only allow png and jpeg as background for the moment 2022-06-06 17:40:51 +02:00
Johannes Zellner 9dc2f71894 Ensure very long status tooltips do not overflow 2022-06-06 14:16:07 +02:00
Johannes Zellner 84d246960d Ensure app data form and submit button use the same disabled state 2022-06-04 07:07:25 +02:00
Johannes Zellner 52c9bdce7f Add volume manage link in app storage section 2022-06-04 07:04:35 +02:00
Johannes Zellner 20eb242b2e Use console outlinks depending on subscription status 2022-06-04 05:44:18 +02:00
Girish Ramakrishnan 0bb894075c Do not set null prefix 2022-06-03 10:44:13 -07:00
Girish Ramakrishnan 7dba294961 storage: check volume status 2022-06-03 10:43:59 -07:00
Girish Ramakrishnan ae142b55f8 string fix 2022-06-03 10:30:10 -07:00
Girish Ramakrishnan 74a289ba50 Fixes to mounts ui 2022-06-03 10:27:53 -07:00
Girish Ramakrishnan 285483217b volumes: updated translations 2022-06-03 09:37:44 -07:00
Girish Ramakrishnan 4bee30dd83 fix more typos 2022-06-03 09:10:37 -07:00
Girish Ramakrishnan 0b4e1695fe Fix storage UI to select volumes 2022-06-03 09:10:16 -07:00
Girish Ramakrishnan 4d01b6ff6d typo 2022-06-03 08:12:58 -07:00
Girish Ramakrishnan 7952a67ed2 guess the volume type better 2022-06-03 07:54:16 -07:00
Johannes Zellner 50b2eabfde Also fixup userdirectory tests 2022-06-03 13:59:21 +02:00
Johannes Zellner 591067ee22 Fixup ldap group search tests 2022-06-03 13:54:31 +02:00
Johannes Zellner 88f78c01ba Remove virtual groups users and admin exposed via ldap 2022-06-03 13:32:35 +02:00
Johannes Zellner 5145126c17 Fixup dropdown z-index order when background is used 2022-06-03 10:20:02 +02:00
Girish Ramakrishnan dddc5a1994 migrate app dataDir to volumes 2022-06-02 16:29:01 -07:00
Girish Ramakrishnan 8fc8128957 Make apps.getDataDir async 2022-06-02 11:19:33 -07:00
Girish Ramakrishnan c76b211ce0 localstorage: remove usage of docker volumes
just move bind mounts. the initial idea was to use docker volume backends
but we have no plans for this. in addition, usage of volumes means that
files get copied from the image and into volume on first run which is
not desired. people are putting /app/data stuff into images which ideally
should break.
2022-06-02 11:09:27 -07:00
Girish Ramakrishnan 0c13504928 Bump version 2022-06-02 11:02:06 -07:00
Girish Ramakrishnan 26d6689787 Show full app.id 2022-06-02 10:56:47 -07:00
Johannes Zellner 50d174a03e Some more background fixes 2022-06-02 12:26:16 +02:00
Girish Ramakrishnan 26ab7f2767 add mailbox display name to schema 2022-06-01 22:06:34 -07:00
Girish Ramakrishnan f78dabbf7e mail: add display name validation tests 2022-06-01 22:04:36 -07:00
Girish Ramakrishnan a05161b7a2 update datadir text 2022-06-01 11:56:50 -07:00
Girish Ramakrishnan 39c5c44ac3 cloudron-firewall: fix spurious line 2022-06-01 09:28:50 -07:00
Johannes Zellner 11dbd833a2 Send appstore account email as query arg with console outlinks 2022-06-01 17:59:47 +02:00
Johannes Zellner d9aa73192f Avoid some flickering during appstore view loading 2022-06-01 17:33:49 +02:00
Girish Ramakrishnan 2dea7f8fe9 sendmail: restrict few characters in the display name 2022-06-01 08:13:19 -07:00
Johannes Zellner c133c704b5 Update translations 2022-06-01 11:42:29 +02:00
Johannes Zellner ec988441d5 Add Mail From Name input 2022-06-01 11:42:23 +02:00
Johannes Zellner 90c36a2ec5 Fix app status label when background is used 2022-06-01 11:40:35 +02:00
Johannes Zellner 99d8d5f13f Fix form group default button outline if background is set 2022-06-01 11:25:39 +02:00
Girish Ramakrishnan 85af0d96d2 sendmail: allow display name to be set 2022-06-01 01:38:16 -07:00
Girish Ramakrishnan 4582f8acb8 Send the mailboxDisplayName 2022-06-01 01:36:59 -07:00
Girish Ramakrishnan 176e917f51 update 7.2.3 changes 2022-05-31 13:27:00 -07:00
Johannes Zellner 893b37cbb7 And more darkmode background fixes 2022-05-31 13:11:58 +02:00
Johannes Zellner 5b757d46ea Avoid too much copy and paste in stylesheet 2022-05-31 12:54:46 +02:00
Johannes Zellner fa78f6de76 Appstore view toolbar dark mode fixes 2022-05-31 12:13:40 +02:00
Johannes Zellner 72829c7a54 Various dark mode + background fixes 2022-05-31 12:03:37 +02:00
Johannes Zellner 5b5a2ba6b8 Improve app grid item hover color on dark mode 2022-05-30 16:02:06 +02:00
Johannes Zellner 532aa8ca43 Update can-i-use browserlist 2022-05-30 15:42:55 +02:00
Girish Ramakrishnan 534c8f9c3f collectd: on one system, localhost was missing in /etc/hosts 2022-05-27 16:10:38 -07:00
Girish Ramakrishnan 5ee9feb0d2 If disk name has '.', replace with '_'
graphite uses . as the separator between different metric parts

see #348
2022-05-27 16:00:08 -07:00
Girish Ramakrishnan b14e30504e If disk name has '.', replace with '_'
graphite uses . as the separator between different metric parts

see cloudron/box#348
2022-05-27 15:59:05 -07:00
Girish Ramakrishnan 723453dd1c 7.2.3 changes 2022-05-27 12:04:01 -07:00
Girish Ramakrishnan 45c9ddeacf appstore: allow re-registration on server side delete 2022-05-26 22:27:58 -07:00
Girish Ramakrishnan f9c93ef039 primary/recovery email: link to docs 2022-05-26 14:42:52 -07:00
Girish Ramakrishnan 72ba61ad91 remove the user/domain/mailbox max count 2022-05-26 14:35:29 -07:00
Girish Ramakrishnan 416bfa67a1 transfer ownership is not used anymore 2022-05-26 14:32:45 -07:00
Girish Ramakrishnan 5b075e3918 transfer ownership is not used anymore 2022-05-26 14:30:32 -07:00
Girish Ramakrishnan 74aac4876a Remove various subscription upgrade hooks
it's in free plan for quite a while now
2022-05-26 14:29:08 -07:00
Girish Ramakrishnan fb109008fa Open subscription setup in new tab 2022-05-26 14:06:44 -07:00
Girish Ramakrishnan 53ba0082b4 wasabi: add 3 month retention period 2022-05-26 08:38:18 -07:00
Girish Ramakrishnan ed7c806fe2 remove spinner from remove background image 2022-05-25 19:04:13 -07:00
Girish Ramakrishnan c9916c4107 Really disable FQDNLookup 2022-05-25 15:48:25 -07:00
Girish Ramakrishnan c7956872cb Add to changes 2022-05-25 15:14:01 -07:00
Girish Ramakrishnan 3adf8b5176 collectd: FQDNLookup causes collectd install to fail
this is on ubuntu 20

https://forum.cloudron.io/topic/7091/aws-ubuntu-20-04-installation-issue
2022-05-25 15:10:55 -07:00
Johannes Zellner 3a4c1b6ae7 Add background image placeholder in selection dialog 2022-05-25 21:27:52 +02:00
Johannes Zellner b0c423626a Add missing background image dialog title 2022-05-25 21:16:18 +02:00
Johannes Zellner 706256deb3 Update translations 2022-05-25 21:13:45 +02:00
Johannes Zellner 056faefb4e Make sso filter translatable 2022-05-25 21:13:39 +02:00
Johannes Zellner 3c17b65f7f Add sso filter option in appstore view 2022-05-25 21:10:53 +02:00
Johannes Zellner 2c97c240d8 Explicitly mention what dashboard visibility is on install dialog 2022-05-25 17:38:47 +02:00
Girish Ramakrishnan 40eae601da Update cloudron-manifestformat for new scheduler patterns 2022-05-23 11:02:04 -07:00
Johannes Zellner a799691921 Also ensure the current notification view is updated on clear all 2022-05-23 17:40:14 +02:00
Johannes Zellner 663e117da1 Clear up to 1k unread notifications 2022-05-23 17:36:44 +02:00
Johannes Zellner c5b022cc19 Ensure the navbar notification number is correctly in-sync 2022-05-23 17:30:52 +02:00
Johannes Zellner 6a6b1d8b3b If we have more than 100 notifications, indicate this with a 100+ label 2022-05-23 17:27:45 +02:00
Johannes Zellner 575e00b24b Add a guess of what a storage selector may look like 2022-05-23 16:50:46 +02:00
Girish Ramakrishnan 3eead2fdbe Fix possible duplicate key issue
console_server_origin in injected by the new setup script even for
7.1.x
2022-05-22 20:48:29 -07:00
Girish Ramakrishnan 55bc6f6cca cron: add more common patterns 2022-05-20 10:59:54 -07:00
Girish Ramakrishnan 9fcd6f9c0a cron: add @service which is probably clearer than @reboot in app context 2022-05-20 10:57:44 -07:00
Girish Ramakrishnan 17910584ca cron: add extensions
https://www.man7.org/linux/man-pages/man5/crontab.5.html#EXTENSIONS
2022-05-20 10:53:30 -07:00
Girish Ramakrishnan d9a02faf7a make the globals const 2022-05-20 09:38:22 -07:00
Girish Ramakrishnan d366f3107d net_admin: enable IPv6 forwarding in the container 2022-05-19 17:10:05 -07:00
Girish Ramakrishnan 2596afa7b3 appstore: set utmSource during user registration 2022-05-19 00:00:48 -07:00
Girish Ramakrishnan 58b4a11546 Go straight into subscription setup 2022-05-18 22:05:18 -07:00
Johannes Zellner 65521c63a3 Better scope background css styling 2022-05-18 09:26:18 +02:00
Johannes Zellner 319db4a9b1 Be explicit about backgroundImage existance 2022-05-17 20:16:33 +02:00
Johannes Zellner aa1e8dc930 Give the dashboard a way to check backgroundImage availability 2022-05-17 15:25:44 +02:00
Johannes Zellner 3922448a77 Disable some css filter on active 2022-05-17 13:22:35 +02:00
Johannes Zellner f3c66056b5 Allow to unset background image 2022-05-17 13:17:05 +02:00
Girish Ramakrishnan 6b70aaf123 Use new exec API 2022-05-16 11:46:50 -07:00
Girish Ramakrishnan 93bacd00da Fix exec web socket/upload/download 2022-05-16 11:46:28 -07:00
Girish Ramakrishnan b5c2a0ff44 exec: rework API to get exit code 2022-05-16 11:23:58 -07:00
Johannes Zellner 64ea742a62 More background image css fixes 2022-05-16 12:00:27 +02:00
Johannes Zellner 9a687d6420 Various background image style fixes 2022-05-15 12:14:32 +02:00
Johannes Zellner 6bd478b8b0 Add profile backgroundImage api 2022-05-15 12:08:11 +02:00
Johannes Zellner ae0b5f010b Add UI bits for setting backgroundImage 2022-05-14 21:09:24 +02:00
Girish Ramakrishnan 41e2f7006f Add low resource doc link 2022-05-14 10:19:26 -07:00
Girish Ramakrishnan c5c62ff294 Add to changes 2022-05-14 09:36:56 -07:00
Johannes Zellner 2ebbbe2c37 Update translations 2022-05-14 14:45:34 +02:00
Johannes Zellner e277126971 Add update available filter 2022-05-14 14:45:22 +02:00
Girish Ramakrishnan e225c6fe0a Fix busy indicator 2022-05-12 09:51:36 -07:00
Girish Ramakrishnan 2745101378 clone: use manifest from the backup 2022-05-12 09:47:31 -07:00
Girish Ramakrishnan 7ed8678d50 mongodb: fix import timeout 2022-05-09 17:20:16 -07:00
Johannes Zellner 13343445b3 Warn the user about my.my. dashboard domain 2022-05-09 21:59:54 +02:00
Johannes Zellner 0bcee0b52d Add my. prefix to dashboard domain selector 2022-05-09 21:59:40 +02:00
Girish Ramakrishnan e19e5423f0 cloudron-support: Remove unused var 2022-05-07 19:25:06 -07:00
Girish Ramakrishnan 622ba01c7a ubuntu 22: collectd disappeared
https://bugs.launchpad.net/ubuntu/+source/collectd/+bug/1971093

also, remove the ubuntu 16 hack
2022-05-06 20:02:02 -07:00
Girish Ramakrishnan 935da3ed15 vultr: set ttl to 120
https://www.vultr.com/docs/introduction-to-vultr-dns/#Limitations
2022-05-06 12:29:12 -07:00
Girish Ramakrishnan ce054820a6 add migration to add consoleServerOrigin 2022-05-05 09:59:22 -07:00
Johannes Zellner 1e7a20b1ed Webserver and api origin are not used anymore in the dashboard 2022-05-05 16:53:10 +02:00
Johannes Zellner a7668624b4 Ensure we also set the new console server origin during installation 2022-05-05 16:52:11 +02:00
Johannes Zellner 9bffe9bd15 Remove dashboard logic to autologin into the appstore 2022-05-05 16:34:45 +02:00
Johannes Zellner d82fb78ba7 Update translations 2022-05-05 16:03:50 +02:00
Johannes Zellner 0ac12d63d3 Adjust the subscription bubble in the navbar 2022-05-05 16:03:41 +02:00
Girish Ramakrishnan 01b36bb37e proxyAuth: make the POST to /logout redirect
for firefly-III
2022-05-03 18:19:22 -07:00
Girish Ramakrishnan ade159eb74 restore: backupId is now remotePath 2022-05-03 14:28:55 -07:00
Girish Ramakrishnan 5d1aaf6bc6 cloudron-setup: silent 2022-05-03 10:20:19 -07:00
Girish Ramakrishnan 7ceb307110 Add 7.2.1 changes 2022-05-03 09:15:21 -07:00
Girish Ramakrishnan 6371b7c20d dns: add hetzner 2022-05-02 22:33:30 -07:00
Girish Ramakrishnan f9ee5b0d27 domains: add hetzner 2022-05-02 22:10:37 -07:00
Girish Ramakrishnan 7ec648164e Remove usage of util 2022-05-02 21:32:10 -07:00
Johannes Zellner 83df5057b6 Since ipv6 support restore has to specify sysinfo.ipv4 2022-05-02 12:02:52 +02:00
Girish Ramakrishnan 6e98f5f36c backuptask: make upload/download async 2022-04-30 16:42:14 -07:00
Girish Ramakrishnan a098c6da34 noop: removeDir is async 2022-04-30 16:35:39 -07:00
Girish Ramakrishnan 94e70aca33 storage: downloadDir is not part of interface 2022-04-30 16:24:49 -07:00
Girish Ramakrishnan ea01586b52 storage: make copy async 2022-04-30 16:24:45 -07:00
Girish Ramakrishnan 8ceb80dc44 hush: return BoxError everywhere 2022-04-29 19:02:59 -07:00
Girish Ramakrishnan 2280b7eaf5 Add S3MultipartDownloadStream
This extends the modern Readable class
2022-04-29 18:23:56 -07:00
Girish Ramakrishnan 1c1d247a24 cloudron-support: update key 2022-04-29 12:39:42 -07:00
Girish Ramakrishnan 90a6ad8cf5 support: new keys (ed25519)
rsa keys are slowly going away
2022-04-29 12:37:27 -07:00
Girish Ramakrishnan 80d91e5540 Add missing changelog 2022-04-29 09:58:17 -07:00
Girish Ramakrishnan 26cf084e1c tarPack/tarExtract do not need a callback 2022-04-28 21:58:00 -07:00
Girish Ramakrishnan 8ef730ad9c backuptask: make upload/download async 2022-04-28 21:37:08 -07:00
Girish Ramakrishnan 7123ec433c split up backupformat logic into separate files 2022-04-28 19:10:57 -07:00
Girish Ramakrishnan c67d9fd082 move crypto code to hush.js 2022-04-28 18:12:17 -07:00
Girish Ramakrishnan dd8f710605 Fix failing test 2022-04-28 18:03:36 -07:00
Girish Ramakrishnan e097b79f65 godaddy: do not remove all the records of type 2022-04-28 17:46:03 -07:00
Girish Ramakrishnan 765f6d1b12 Revert "proxyAuth: use default fallback icon when no appstore icon or custom icon"
This reverts commit 045c3917c9.

This was committed by mistake, not sure how. 3d28833c35 is the commit
that fixes this issue.
2022-04-28 17:05:46 -07:00
Girish Ramakrishnan 7cf80ebf69 postgresql: add connection logs
This was an attempt to fix connection leak in postgresql. It turns
out that there was a long running cron task which was holding a db
connection. When that happens, the apptask might fail because postgres
says db is in use. The code in scheduler.js currently does not really
'suspend' task running because of re-entrancy issues.
2022-04-28 16:11:09 -07:00
Johannes Zellner cc328f3a6e cloudron-support --enable-ssh should only enable ssh not attempt to collect stats, this might fail 2022-04-28 11:31:18 +02:00
Girish Ramakrishnan 045c3917c9 proxyAuth: use default fallback icon when no appstore icon or custom icon 2022-04-28 10:48:25 +02:00
Girish Ramakrishnan ac2186ccf6 redis: fix cgroup check 2022-04-27 18:46:00 -07:00
Girish Ramakrishnan a57fe36643 collectd: add cgroup v2 config
Ubuntu 22 has cgroup v2 config by default

https://rootlesscontaine.rs/getting-started/common/cgroup2/#checking-whether-cgroup-v2-is-already-enabled
https://www.kernel.org/doc/html/latest/admin-guide/cgroup-v2.html
https://man7.org/training/download/splc_cgroups_v1_slides.pdf
2022-04-27 18:41:20 -07:00
Girish Ramakrishnan 1e711f7928 Ubuntu 22 has private home directories by default (https://discourse.ubuntu.com/t/private-home-directories-for-ubuntu-21-04-onwards/) 2022-04-27 17:49:29 -07:00
Girish Ramakrishnan eafccde6cb Reset mysql password by detecting version (instead of ubuntu version) 2022-04-27 15:45:53 -07:00
Girish Ramakrishnan 6b85e11a22 update: collectd configuration can be removed 2022-04-27 15:41:28 -07:00
Girish Ramakrishnan a74de3811b mysqldump: better detection of --column-statistics support
since it's also needed for ubuntu 22
2022-04-27 15:39:53 -07:00
Girish Ramakrishnan 070a425c85 typo 2022-04-27 13:11:20 -07:00
Girish Ramakrishnan 32153ed47d nginx: switch to ubuntu's repo package
ubuntu 18.04 has nginx 1.14
ubuntu 20.04, 22.04 has nginx 1.18

We used a custom nginx for TLSv1.3 support (ssl_protocols TLSv1.3).

OpenSSL itself has TLS 1.3 only from Ubuntu 18.10. This is why we
installed custom packages on Ubuntu 18.04
2022-04-27 10:59:27 -07:00
Girish Ramakrishnan 454f9c4a79 syncer: task processor cannot be async because of asyncjs quirk 2022-04-27 09:14:51 -07:00
Johannes Zellner 840e8153ff Also show demo mode errors in the demo user profile page 2022-04-27 14:30:54 +02:00
Johannes Zellner db185c9146 Improve error reporting in demo mode 2022-04-27 14:09:07 +02:00
Girish Ramakrishnan 3d28833c35 proxyAuth: use default fallback icon when no appstore icon or custom icon 2022-04-26 19:43:22 -07:00
Girish Ramakrishnan be458020dd use string interpolation 2022-04-26 18:55:02 -07:00
Girish Ramakrishnan 9b6733fd88 godaddy: there is now a delete API 2022-04-26 18:44:50 -07:00
Girish Ramakrishnan 1b34a3e599 proxyAuth: add header spoofing note 2022-04-26 14:59:38 -07:00
Girish Ramakrishnan 67d29dbad8 systemd-detect-virt returns false when none detected 2022-04-26 14:59:26 -07:00
Johannes Zellner 74de921b00 Use externalCustomer subscription flag to show console outlink 2022-04-26 21:21:00 +02:00
Johannes Zellner a923587a2b Do not show the appstore email for DO addon subscriptions 2022-04-26 18:33:33 +02:00
Girish Ramakrishnan 28b0043541 cloudron-setup: add container virtualization check 2022-04-26 08:24:36 -07:00
Girish Ramakrishnan 78824b059e turn off sso flag if an update removes sso options
ff-iii used to have LDAP but we removed it. in the database, 'sso'
is still true. the migration here will reset it back to false.
for future situations like these, we sync the sso flag on app update itself.

this ensures correct behavior when yet another update add back sso support.
in ff-iii case, a future update is bringing in proxyAuth based sso!

we don't store the 'sso' bit in backupdb, so user choice of sso is
lost if restore changes sso addons.
2022-04-25 23:36:58 -07:00
Girish Ramakrishnan c63709312d proxyAuth: set X-Remote-User, X-Remote-Email headers
Apps like firefly-iii support https://datatracker.ietf.org/doc/html/rfc3875#section-4.1.10
2022-04-25 22:24:41 -07:00
Girish Ramakrishnan 11cf24075b Keep proxyAuth.enabled configs together 2022-04-25 22:09:34 -07:00
Girish Ramakrishnan 5d440d55c3 Add to changes 2022-04-25 09:07:27 -07:00
Johannes Zellner 4c3b81d29c Add make user local tests and fixup route 2022-04-24 22:49:12 +02:00
Johannes Zellner 3bdac62e7c Update existing translations 2022-04-24 22:36:50 +02:00
Johannes Zellner 659acb21ea Add make user local translations 2022-04-24 22:36:41 +02:00
Johannes Zellner b3570a9faa Add UI to make user local 2022-04-24 22:22:32 +02:00
Johannes Zellner 032218c0fd Add route to make user local 2022-04-24 22:22:25 +02:00
Johannes Zellner 0cd48bd239 Ensure LDAP usernames are always treated lowercase 2022-04-23 11:21:14 +02:00
Johannes Zellner a8a995ca05 Also refresh groups on LDAP sync 2022-04-23 11:12:26 +02:00
Girish Ramakrishnan f5a2e8545b Initial support for ubuntu 22.04 Jammy Jellyfish 2022-04-21 12:30:37 -07:00
Girish Ramakrishnan 4306e20a8e Update docker to 20.10.14 2022-04-21 12:30:14 -07:00
Girish Ramakrishnan 635dd5f10d Update nodejs 2022-04-21 12:28:55 -07:00
Girish Ramakrishnan 7f89dfd261 add once.js 2022-04-15 19:01:35 -05:00
Girish Ramakrishnan e878e71b20 promisify once 2022-04-15 17:59:41 -05:00
Girish Ramakrishnan 64a2493ca2 Fixup prettyBytes 2022-04-15 17:56:24 -05:00
Girish Ramakrishnan 26f9635a38 taskworker: only support async workers 2022-04-15 17:40:46 -05:00
Girish Ramakrishnan 5f2492558d callback is not needed here 2022-04-15 17:29:15 -05:00
Girish Ramakrishnan c83c151e10 remove recursive-readdir 2022-04-15 11:34:16 -05:00
Girish Ramakrishnan 801dddc269 inline S3ReadStream 2022-04-15 11:25:15 -05:00
Girish Ramakrishnan 9a886111ad inline chunk.js 2022-04-15 09:25:54 -05:00
Girish Ramakrishnan bdc9a0cbe3 inline prettyBytes 2022-04-15 09:18:07 -05:00
Girish Ramakrishnan 555f914537 remove lodash.chunk 2022-04-15 08:07:46 -05:00
Girish Ramakrishnan 43f86674b4 Remove delay module 2022-04-15 07:52:35 -05:00
Girish Ramakrishnan f7ed044a40 fix storage test 2022-04-15 07:49:38 -05:00
Girish Ramakrishnan 72408f2542 Remove proxy-middleware, we have our own copy by now
See aad50fb5b2
2022-04-15 07:43:19 -05:00
Girish Ramakrishnan 0abc6c8844 replace pretty-bytes module 2022-04-15 07:34:16 -05:00
Girish Ramakrishnan d46de32ffb Update packages 2022-04-15 07:24:50 -05:00
Girish Ramakrishnan 185d5d66ad even more constness 2022-04-14 20:30:00 -05:00
Girish Ramakrishnan 01ce251596 constness 2022-04-14 18:03:43 -05:00
Girish Ramakrishnan 05d7a7f496 constness 2022-04-14 17:50:41 -05:00
Girish Ramakrishnan 685bda35b9 storage: make remove and removeDir async 2022-04-14 16:16:20 -05:00
Girish Ramakrishnan 8d8cdd38a9 Add missing await 2022-04-14 15:40:51 -05:00
Girish Ramakrishnan d54c03f0a0 storage: make exists async 2022-04-14 12:24:34 -05:00
Girish Ramakrishnan 11f7be2065 storage: verifyConfig is now async 2022-04-14 12:24:30 -05:00
Girish Ramakrishnan a39e0ab934 storage: make remount async 2022-04-14 09:57:31 -05:00
Girish Ramakrishnan b51082f7e4 storage: checkPreconditions is now async 2022-04-14 07:40:19 -05:00
Girish Ramakrishnan 9ec76c69ec s3: make callback of getS3Config 2022-04-14 07:35:41 -05:00
Girish Ramakrishnan b0a09a8a00 restore: fix usage of backupId 2022-04-13 21:23:12 -05:00
Girish Ramakrishnan 5870f949a3 Update changes 2022-04-13 11:39:23 -05:00
Johannes Zellner 8dfc142905 Add all new Wasabi S3 regions 2022-04-11 13:17:47 +02:00
Girish Ramakrishnan 87cb90c9b6 Fix crash
ReferenceError: Cannot access 'backups' before initialization
2022-04-08 16:27:11 -07:00
Girish Ramakrishnan 21b900258a backup: fix format of id
the id is used in dependsOn by the UI to find the linked apps. if we
had it as an uuid, we have to query the db a lot
2022-04-08 16:23:27 -07:00
Girish Ramakrishnan d289e0a320 backups: remove the preserve label and add tooltip 2022-04-08 11:22:05 -07:00
Girish Ramakrishnan 153abc8078 apps: add edit backup UI 2022-04-08 11:06:04 -07:00
Johannes Zellner 6d04b2645c Change backup persist icon to fa-archive 2022-04-08 19:10:29 +02:00
Johannes Zellner 686f312f67 Update russian translation 2022-04-08 15:09:23 +02:00
Johannes Zellner 46f0bdf393 Add translations for backup edit 2022-04-08 15:09:04 +02:00
Johannes Zellner de9f3c10f4 Use new sftp addon 3.6.1
This will copy the uploaded file on conflict with a unique .number
extension
2022-04-07 18:02:11 +02:00
Johannes Zellner f282deffd5 Show basic picture preview in filemanager 2022-04-07 16:11:04 +02:00
Johannes Zellner 347557c6ae Merge backup label and date 2022-04-07 15:46:28 +02:00
Johannes Zellner 940872e5a5 preserveSecs is now just a checkbox 2022-04-07 15:31:41 +02:00
Johannes Zellner 47e45808a3 Give the addons a lot more time to initiate a connection 2022-04-06 13:05:09 +02:00
Girish Ramakrishnan b2aae4f7b3 Fix import from fs 2022-04-05 11:33:33 -07:00
Girish Ramakrishnan 0280c2baba keep the backup if preserveSecs is -1 2022-04-05 11:08:38 -07:00
Girish Ramakrishnan 6e68cf3b01 Add "at" for remotePath 2022-04-05 10:28:30 -07:00
Girish Ramakrishnan 2f8f5fcb7d Typo 2022-04-05 10:26:05 -07:00
Girish Ramakrishnan 9540a0606c Fix restore code path to use remotePath 2022-04-05 10:14:17 -07:00
Girish Ramakrishnan 709d4041b2 backups: fix restore code path after backup id changes 2022-04-05 09:55:57 -07:00
Johannes Zellner 9c6b3a9825 Add modal to edit backup label and preserveSecs 2022-04-05 14:41:41 +02:00
Johannes Zellner b4b999bd74 Fix await safe usage 2022-04-05 13:17:49 +02:00
Girish Ramakrishnan ea3fd27123 backups: recursively update the dep preserveSecs
One idea was to compute this at cleanup time, but this has two problems:

* the UI won't reflect this value. can be good or bad
* the cleaner has no easy way to find out the "parent". I guess we should
  change our data structure, if we want to go down this route...
2022-04-04 21:29:35 -07:00
Girish Ramakrishnan 2692a3bca7 We store paths now instead of ids 2022-04-04 21:07:35 -07:00
Girish Ramakrishnan 452a4d9a75 backups: add remotePath
the main motivation is that id can be used in REST API routes. previously,
the id was a path and this had a "/" in it. This made /api/v1/backups/:backupId
not work.
2022-04-04 20:40:40 -07:00
Girish Ramakrishnan 54934c41a7 storage: rename getBackupPath to getBasePath 2022-04-04 14:08:24 -07:00
Girish Ramakrishnan a05e564ae6 Fix expectation in test 2022-04-04 14:03:07 -07:00
Girish Ramakrishnan 57ac94bab6 Fix appstore test 2022-04-04 13:55:23 -07:00
Girish Ramakrishnan 6839ff4cf6 reverseproxy: fix typo
this type was causing nginx configs of the primary domain being re-written
everytime we try to renew certs
2022-04-04 10:30:32 -07:00
Girish Ramakrishnan 993dda9121 rename function 2022-04-03 08:29:59 -07:00
Girish Ramakrishnan 70695b1b0f backups: set label of backup and control it's retention 2022-04-02 19:30:54 -07:00
Shane Cooke cb0d72fc02 Fixed introspection -> inspection, "heads-up", moved "first" and made the last line more positive and action-oriented. 2022-04-02 08:03:15 +00:00
Girish Ramakrishnan d47b39d90b eventlog: distinguish install vs update finish 2022-04-01 14:19:53 -07:00
Girish Ramakrishnan 421e7d80d0 Add ACTION_INSTALL_FINISH 2022-04-01 13:44:04 -07:00
Girish Ramakrishnan 574d3b120f Use hyphens instead of camel case for scripts 2022-04-01 09:51:15 -07:00
Girish Ramakrishnan 3d1f2bf716 move init script into scripts
the baseimage directory was from a time when we used to build a
base image and snapshot it. this is not done anymore.

init-ubuntu.sh - static packages installed one time and managed by ubuntu
installer.sh - packages installed and maintained by cloudron. run before an update.
    this can "fail" and the updater can thus abort
start.sh - configuring packages
2022-04-01 09:48:40 -07:00
Girish Ramakrishnan bac5edc188 cloudron-setup: remove arguments to init script
this ends support for cloudron 5 installs with this version of the script
2022-04-01 09:37:06 -07:00
Girish Ramakrishnan 7700c56d3e cloudron-setup: remove --skip-baseimage-init, it is unused 2022-04-01 09:22:23 -07:00
Girish Ramakrishnan 9f395f64da accessToken -> cloudronToken 2022-03-31 23:59:42 -07:00
Girish Ramakrishnan 73d029ba4b cloudron-setup: add setup-token to arg list 2022-03-31 23:49:34 -07:00
Girish Ramakrishnan 3d2ff45e9f typo 2022-03-31 23:46:14 -07:00
Girish Ramakrishnan a292393a43 7.2 changes 2022-03-31 23:45:14 -07:00
Girish Ramakrishnan 37a4e8d5c5 cloudron-setup: add --setup-token 2022-03-31 23:38:54 -07:00
Girish Ramakrishnan 81728f4202 appstore: make the args of updateCloudron clear 2022-03-31 23:27:00 -07:00
Girish Ramakrishnan 2d2ddd1c49 add note on the existing setupToken 2022-03-31 23:02:26 -07:00
Girish Ramakrishnan 79fbdb0691 user_token route is now web_token 2022-03-31 22:55:54 -07:00
Girish Ramakrishnan bc49f64a0c appstore: it never returns 422
I think I meant 402 which is subscription expired/billing error
2022-03-31 22:51:40 -07:00
Girish Ramakrishnan 52fc031516 Log error message if updateCloudron failed 2022-03-31 22:46:14 -07:00
Girish Ramakrishnan cae528158c appstore: check login response 2022-03-31 22:43:34 -07:00
Girish Ramakrishnan 566a03cd59 remove unnecessary temp variables 2022-03-31 22:41:48 -07:00
Girish Ramakrishnan ad2221350f Add appstore web token
* For existing installs, migrate using the soon to be obsoleted user_token route
* For new installs, the token post login is stashed during registration time
2022-03-31 22:35:45 -07:00
Girish Ramakrishnan 656dca7c66 rename cloudron_token to appstore_api_token 2022-03-31 22:18:08 -07:00
Girish Ramakrishnan 638fe2e6c8 ldap: add rootDSE test 2022-03-31 21:18:56 -07:00
Girish Ramakrishnan 3295d2b727 settings: remove licenseKey
this is unused
2022-03-31 12:47:45 -07:00
Johannes Zellner c4689a8385 Add registerWithSetupToken() to be used 2022-03-31 17:29:44 +02:00
Girish Ramakrishnan d09d6c21fa sshfs: fix bug where sshfs mounts were generated without unbound dependancy 2022-03-30 21:39:15 -07:00
Girish Ramakrishnan 7ec1594428 create a separate support user
This creates a separate user named 'cloudron-support' using which we
can provide remote support. The hyphen username convention follows the
systemd sytem username convention.

With a separate user, we don't need to ask users to keep changing PermitRootLogin
(and remind them to change it back).

Using a sudo user has various advantages:

* https://askubuntu.com/questions/687249/why-does-ubuntu-have-a-disabled-root-account
* https://wiki.debian.org/sudo
* https://askubuntu.com/questions/16178/why-is-it-bad-to-log-in-as-root

The yellowtent user is also locked down further - no password and no shell login.
2022-03-30 15:08:20 -07:00
Girish Ramakrishnan 529f6fb2cd sftp: fix private key file permissions on restore 2022-03-30 11:58:21 -07:00
Girish Ramakrishnan ac29ca0224 restore: reset the mountOptions password 2022-03-30 11:42:30 -07:00
Girish Ramakrishnan 724f5643bc suppress grep message 2022-03-30 11:10:00 -07:00
Girish Ramakrishnan 74e849e2a1 backup cleaner: do not clean when provider is not mounted 2022-03-30 10:17:20 -07:00
Girish Ramakrishnan 75e8fc6cbd Fix user dialog to not have autocomplete 2022-03-30 09:23:01 -07:00
Girish Ramakrishnan 37f74c4ed0 rename form name 2022-03-30 09:18:20 -07:00
Girish Ramakrishnan 68a0dc3855 change form element name to prevent auto-complete 2022-03-30 09:17:51 -07:00
Girish Ramakrishnan bfb233eca1 installer.sh: move installation of docker/node/nginx etc
no need to dup the code in two places. i think this will also
fix the unbound/resolvconf DNS resolution issue. this way unbound is configured
and is what gets used when docker is installed.

https://forum.cloudron.io/topic/6660/help-please-failing-setup-of-cloudron
https://forum.cloudron.io/topic/6632/help-me-please-got-error-while-installing-the-cloudron-on-a-fresh-ubuntu-20-04-x64-server
https://forum.cloudron.io/topic/6561/that-install-script-fails-74-times-out-of-75
2022-03-29 22:34:03 -07:00
Girish Ramakrishnan 5b27eb9c54 initializeBaseUbuntuImage: create yellowtent user 2022-03-29 21:41:46 -07:00
Girish Ramakrishnan faf91d4d00 sshfs and mount.nfs are in base image now 2022-03-29 21:32:48 -07:00
Girish Ramakrishnan dbb803ff5e cifs: use credentials file
this supports special characters in passwords better

https://forum.cloudron.io/topic/6577/failed-to-mount-inactive-mount-error-13-when-mounting-cifs-from-synology
2022-03-29 21:26:58 -07:00
Girish Ramakrishnan 0dea2d283b move sshfs key write logic to renderMountFile 2022-03-29 20:15:55 -07:00
Girish Ramakrishnan cbc44da102 create sshfs dir in start.sh 2022-03-29 20:13:41 -07:00
Girish Ramakrishnan 3f633c9779 dns: check for CNAME record
Check if CNAME record exists and remove it if overwrite is set
2022-03-29 13:53:34 -07:00
Girish Ramakrishnan 6933ccefe2 Update nginx to 1.20.0-1 2022-03-28 13:25:05 -07:00
Girish Ramakrishnan 54aeff1419 ldap: send rootDSE response
some apps like osTicket require this
2022-03-25 14:15:18 -07:00
Girish Ramakrishnan 14f9d7fe25 cloudron-setup: add a redo flag to workaround dns failures
temporary hotfix for dns issues some VMs are having:

https://forum.cloudron.io/topic/6660/help-please-failing-setup-of-cloudron
https://forum.cloudron.io/topic/6632/help-me-please-got-error-while-installing-the-cloudron-on-a-fresh-ubuntu-20-04-x64-server
https://forum.cloudron.io/topic/6561/that-install-script-fails-74-times-out-of-75
2022-03-25 10:33:49 -07:00
Girish Ramakrishnan 144e98abab image name cannot start with '/'
https://forum.cloudron.io/topic/6689/cannot-uninstall-custom-app
https://stackoverflow.com/questions/43091075/docker-restrictions-regarding-naming-image
2022-03-24 10:03:40 -07:00
Girish Ramakrishnan 5f774c30d5 applicationLink should not be based on app state 2022-03-23 16:24:53 -07:00
Girish Ramakrishnan e0e0c049c8 add link to upstream issue 2022-03-23 09:52:17 -07:00
Johannes Zellner ef0f9c5298 Fixup cn attribute for ldap to be according to spec
Bring back b54c4bb399
2022-03-22 10:19:21 -07:00
Girish Ramakrishnan b62da8ba70 ipv6: typo when using fixed IPv6 2022-03-22 09:10:50 -07:00
Girish Ramakrishnan d13905377c firewall: do not add duplicate ldap redirect rules 2022-03-21 12:25:30 -07:00
Girish Ramakrishnan 6f1023e0cd Add to changes 2022-03-18 10:27:04 -07:00
Girish Ramakrishnan 96cdaea9ce mail: hide logs button for non-superadmin 2022-03-18 09:58:03 -07:00
Girish Ramakrishnan f2049f04e1 Fix link 2022-03-16 22:15:58 -07:00
Girish Ramakrishnan daccfa9c55 backups: better styling of password repeat 2022-03-16 22:01:22 -07:00
Girish Ramakrishnan 1bab05f6f9 Update translations 2022-03-16 10:57:12 -07:00
Girish Ramakrishnan eeddc233dd more changes 2022-03-16 09:05:41 -07:00
Girish Ramakrishnan c6ded2f47b backups: sync concurrency can be specified for filesystem backend 2022-03-15 17:56:50 -07:00
Girish Ramakrishnan 0ab9734b21 eventlog: Fix dyndns details message 2022-03-15 10:00:48 -07:00
Girish Ramakrishnan f48690ee11 dyndns: fix typo 2022-03-15 09:53:54 -07:00
Girish Ramakrishnan 3b0bdd9807 support: send the server IPv4 when remote support enabled 2022-03-14 21:30:54 -07:00
Girish Ramakrishnan 6dc5c4f13b ldap: add dummy apps search route for directus 2022-03-14 09:17:49 -07:00
Girish Ramakrishnan 746bd64434 mandatory 2fa: Fix typo in 2FA check 2022-03-13 23:21:19 -07:00
Girish Ramakrishnan 9bb5096f1c nginx: enable underscores in headers
chatwoot requires this

https://www.chatwoot.com/docs/self-hosted/deployment/caprover#api-requests-failing-with-you-need-to-sign-in-or-sign-up-before-continuing

They are apparently disabled by default since they conflict with some CGI headers:

https://stackoverflow.com/questions/22856136/why-do-http-servers-forbid-underscores-in-http-header-names
https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/?highlight=disappearing%20http%20headers#missing-disappearing-http-headers
2022-03-13 23:04:34 -07:00
Girish Ramakrishnan af42008fd3 Enable IPv6 on new interfaces with net_admin cap 2022-03-12 09:14:37 -08:00
Johannes Zellner d6875d4949 Add test coverage support 2022-03-11 00:52:41 +01:00
Girish Ramakrishnan c0bbb6394a update translations 2022-03-08 18:10:11 -08:00
Girish Ramakrishnan 4396bd3ea7 wildcard: handle ENODATA 2022-03-08 17:14:42 -08:00
Girish Ramakrishnan db03053e05 cloudflare: remove async 2022-03-08 14:30:27 -08:00
Johannes Zellner 5bf1c546b5 show overall user count 2022-03-05 17:33:23 +01:00
Johannes Zellner 92bd4d0a78 Update translations 2022-03-05 17:33:13 +01:00
Johannes Zellner 545b9886a3 Fix overlooked user.display change 2022-03-04 18:28:19 +01:00
Johannes Zellner b6b46dca78 Also use the same username || email pattern in app.html 2022-03-04 13:37:35 +01:00
Johannes Zellner ce20af0d36 Ensure we show multiselect labels for users without a username 2022-03-04 13:36:25 +01:00
Girish Ramakrishnan 193dff8c30 Better log 2022-03-03 10:08:34 -08:00
Girish Ramakrishnan 59582d081a port25check: log the error message 2022-03-03 09:58:58 -08:00
Girish Ramakrishnan ef684d32a2 port25checker: Use random tick to not bombard our checker service 2022-03-03 09:57:41 -08:00
Girish Ramakrishnan fc2a326332 mysql: Fix default collation
https://github.com/mattermost/mattermost-server/issues/19602#issuecomment-1057360142

> SELECT @@character_set_database, @@collation_database;

This will show utf8mb4 and utf8mb4_0900_ai_ci (was utf8mb4_unicode_ci)

To see the table schemas:

> SELECT table_schema, table_name, table_collation FROM information_schema.tables;
2022-03-02 22:34:30 -08:00
Girish Ramakrishnan e66a804012 ufw may not be installed 2022-03-02 19:36:32 -08:00
Girish Ramakrishnan 5afa7345a5 route53: check permissions to perform route53:ListResourceRecordSets
otherwise, at install time we see "DNS credentials for xx are invalid. Update it in Domains & Certs view"

the exact error from route 53 is:

User: arn:aws:iam::xx:user/yy is not authorized to perform: route53:ListResourceRecordSets on resource: arn:aws:route53:::hostedzone/zz because no identity-based policy allows the route53:ListResourceRecordSets action
2022-03-02 10:44:52 -08:00
Girish Ramakrishnan c100be4131 dns: filter out link local addresses
Unlike IPv4, IPv6 requires a link-local address on every network interface on which the IPv6 protocol is enabled, even when routable addresses are also assigned
2022-03-01 12:13:59 -08:00
Girish Ramakrishnan d326d05ad6 sysinfo: add noop provider 2022-03-01 12:05:01 -08:00
Girish Ramakrishnan eb0662b245 Up the json size to 2mb for block list route
https://forum.cloudron.io/topic/6575/cloudron-7-1-2-firewall-not-ipv6-ready
2022-03-01 11:57:50 -08:00
Johannes Zellner b92641d1b8 Update ldapjs to 2.3.2 2022-03-01 17:36:09 +01:00
Johannes Zellner a8907eb904 Update xterm.js to 4.18.0 2022-03-01 12:35:20 +01:00
Girish Ramakrishnan 7912d521ca 7.1.3 changes 2022-02-28 14:26:37 -08:00
Johannes Zellner 71dac64c4c Only allow impersonation for equal or less powerful roles 2022-02-28 20:42:33 +01:00
Girish Ramakrishnan aab6f222b3 better log 2022-02-28 11:04:44 -08:00
Johannes Zellner be40cea600 Do not allow normal admins to impersonate superadmins 2022-02-26 14:09:36 +01:00
Johannes Zellner bbcb596ffa fixup offline banner to not show prematurely onload 2022-02-26 14:01:05 +01:00
Girish Ramakrishnan 1cb1be321c remove usage of deprecated fs.rmdir 2022-02-25 16:43:20 -08:00
Girish Ramakrishnan 2434e81383 backups: fix incorrect mountpoint check with managed mounts 2022-02-25 12:53:05 -08:00
Girish Ramakrishnan 62142c42ea Fix crash 2022-02-25 11:03:16 -08:00
Johannes Zellner 1c6d86d760 Only set mailbox aliases if something has changed 2022-02-25 13:05:18 +01:00
Girish Ramakrishnan 0ae30e6447 disable routes/test/apps-test for now 2022-02-24 20:50:35 -08:00
Girish Ramakrishnan 8c09f688f5 eventlog: better mailbox events 2022-02-24 20:39:11 -08:00
Girish Ramakrishnan 1a87856655 eventlog: log event on alias update 2022-02-24 20:30:42 -08:00
Girish Ramakrishnan a3e097d541 add missing awaits for eventlog.add 2022-02-24 20:04:46 -08:00
Girish Ramakrishnan 9a6694286a eventlog: event type typo 2022-02-24 19:59:29 -08:00
Girish Ramakrishnan a662a60332 eventlog: add event for certificate cleanup 2022-02-24 19:55:43 -08:00
Girish Ramakrishnan 6009105cd4 eventlog: add certificate.cleanup 2022-02-24 19:55:26 -08:00
Girish Ramakrishnan 69f3b4e987 better debugs 2022-02-24 12:57:56 -08:00
Girish Ramakrishnan 481586d7b7 add missing return 2022-02-24 12:51:27 -08:00
Girish Ramakrishnan 34c3a2b42d mail: increase pool_timeout 2022-02-24 12:25:38 -08:00
Johannes Zellner c4a9295d3e Fix typo 2022-02-24 19:10:04 +01:00
Johannes Zellner 10c0679d8f Do not use $index with angular sorted lists 2022-02-23 17:02:45 +01:00
Johannes Zellner 50f9624f4a Treat tags in appstore as case-insensitive 2022-02-23 16:29:15 +01:00
Johannes Zellner e52a306370 Make sure we require an encryption password if encryption is set to true for importing app backups 2022-02-22 16:34:53 +01:00
Johannes Zellner bbc232602f Improve readability of backup configs JSON 2022-02-22 16:28:14 +01:00
Johannes Zellner 30234c5ac1 Make the linter happy 2022-02-22 16:25:43 +01:00
Johannes Zellner 7cb7c52d15 Add upstreamVersion support in appstore view 2022-02-22 16:20:27 +01:00
Johannes Zellner c93dde5265 Prevent user from getting locked out without 2fa setup 2022-02-22 11:13:03 +01:00
Girish Ramakrishnan 993ff50681 cloudron-firewall: fix crash when ports are whitelisted
it failed with:
Feb 22 08:52:30 strawberry cloudron-firewall.sh[14300]: /home/yellowtent/box/setup/start/cloudron-firewall.sh: line 14: iptables --wait 120 --wait-interval 1: command not found

the root cause was that IFS was getting set but not getting reset later.
the IFS=xx line is not line local as it seems to appear (just a bash statement)
2022-02-22 00:56:57 -08:00
Girish Ramakrishnan ba5c2f623c remove supererror, not really used 2022-02-21 17:34:51 -08:00
Johannes Zellner 0dfd217a86 Fixup support view if not yet logged into the appstore 2022-02-21 22:38:11 +01:00
Johannes Zellner 3766101122 Update translations 2022-02-21 21:39:38 +01:00
Girish Ramakrishnan 24a16cf8b4 redis: fix issue where protected mode was enabled with no password 2022-02-21 12:21:37 -08:00
Johannes Zellner b7dfa318f3 Add missing col div in support view 2022-02-21 21:15:08 +01:00
Girish Ramakrishnan 5d34460e7f typo 2022-02-21 12:02:09 -08:00
Girish Ramakrishnan 64b6187a26 tests: make the network ipv6 2022-02-21 12:01:12 -08:00
Girish Ramakrishnan c15913a1b2 add to changes 2022-02-20 17:46:37 -08:00
Girish Ramakrishnan 8ef5e35677 cloudron-firewall: add retry for xtables lock
cloudron-firewall.sh[30679]: ==> Setting up firewall
cloudron-firewall.sh[30693]: iptables: Chain already exists.
cloudron-firewall.sh[30694]: ip6tables: Chain already exists.
cloudron-firewall.sh[30699]: ipset v7.5: Set cannot be created: set with the same name already exists
cloudron-firewall.sh[30702]: ipset v7.5: Set cannot be created: set with the same name already exists
cloudron-firewall.sh[30740]: Another app is currently holding the xtables lock. Perhaps you want to use the -w option?
2022-02-20 17:42:20 -08:00
Girish Ramakrishnan c55d1f6a22 Add to changes 2022-02-19 15:27:51 -08:00
Girish Ramakrishnan 8b5b13af4d leave note on br0ken usage of async 2022-02-19 14:26:48 -08:00
Girish Ramakrishnan dfd51aad62 ensure dkim keys
a previous migration moved dkim keys into the database but looks like
sometimes the domain has empty dkim keys. this could be because we do not
add mail domain and domain in a transaction, so it's possible dkim was not
generated?
2022-02-19 14:23:30 -08:00
Girish Ramakrishnan 2b81120d43 cloudron-setup: say that it is cloudron we are installing 2022-02-18 13:38:52 -08:00
Girish Ramakrishnan 91dc91a390 fix dns tests 2022-02-18 11:36:14 -08:00
Johannes Zellner b886a35cff Fixup gcdns calls. The api returns an array as result
https://github.com/googleapis/google-cloud-node/issues/2556
https://github.com/googleapis/google-cloud-node/issues/2896
2022-02-18 19:46:03 +01:00
Girish Ramakrishnan e59efc7e34 bump free space requirement to 2GB 2022-02-18 09:56:42 -08:00
Johannes Zellner 2160644124 Lets not stretch our luck 2022-02-18 18:40:49 +01:00
Johannes Zellner 4ab52c6927 Move subscription required button in install dialog to the right 2022-02-18 18:16:27 +01:00
Johannes Zellner 41312354a7 Add Cloudron ldap provider option 2022-02-18 18:03:44 +01:00
Johannes Zellner b54c4bb399 Fixup cn attribute for ldap to be according to spec 2022-02-18 17:43:47 +01:00
Girish Ramakrishnan f2c6d45c1c Fix mailbox import 2022-02-17 18:04:32 -08:00
Girish Ramakrishnan feaa5585e1 mailbox: fix crash when domain not found 2022-02-17 18:03:56 -08:00
Girish Ramakrishnan 2d27a92587 Fix mailbox export
can also export as csv now
2022-02-17 16:37:48 -08:00
Girish Ramakrishnan 8258a8c777 mailbox: export the real owner info 2022-02-17 16:24:29 -08:00
Girish Ramakrishnan dd364733a4 Fix user import 2022-02-17 15:52:02 -08:00
Girish Ramakrishnan 6f7bede7bd listen on ipv6 as well for port 53 2022-02-17 11:56:08 -08:00
Girish Ramakrishnan eb3e87c340 add debug 2022-02-17 11:08:22 -08:00
Johannes Zellner 5e76a8ea7b Show ipv6 detection errors 2022-02-17 18:11:22 +01:00
Johannes Zellner 292034c0e2 If domain does not exist, go back to domain selection 2022-02-17 17:54:44 +01:00
Johannes Zellner 9481eccfb0 Make email import dialog translatable 2022-02-17 15:52:15 +01:00
Girish Ramakrishnan 9d8f21f78d mailboxes: be explicit about what is exported 2022-02-16 23:10:10 -08:00
Girish Ramakrishnan 9567efeb45 set jitsi in wellknown if matrix hostname is not set 2022-02-16 22:04:08 -08:00
Girish Ramakrishnan d7cb909600 also export fallback email and role 2022-02-16 21:23:01 -08:00
Girish Ramakrishnan 26a8738b21 make user listing return non-private fields
this was from a time when normal users could install apps
2022-02-16 21:22:38 -08:00
Girish Ramakrishnan 40e84265e7 Fix doc link 2022-02-16 21:14:58 -08:00
Girish Ramakrishnan 9665d1de3a user: fix export where csv does not active field 2022-02-16 21:14:58 -08:00
Girish Ramakrishnan 5db0ace3ed Remove superfluous call when listing users 2022-02-16 21:14:55 -08:00
Girish Ramakrishnan 012a3e2984 ensure certificate of secondary domains 2022-02-16 20:32:04 -08:00
Girish Ramakrishnan dfebda7170 Remove deprecated fs.rmdirSync 2022-02-16 20:30:33 -08:00
Girish Ramakrishnan 149f778652 wildcard: better error message 2022-02-16 20:22:50 -08:00
Girish Ramakrishnan 773dfd9a7b ipv6 support in firewall allow and block lists 2022-02-16 13:39:35 -08:00
Girish Ramakrishnan 426ed435a4 userdirectory: move the validation and apply logic 2022-02-16 13:00:06 -08:00
Girish Ramakrishnan 436a5d726b backups: send chown flag for mountpoint 2022-02-16 12:03:40 -08:00
Girish Ramakrishnan 2ed770affd mountpoint: allow chown flag to be set 2022-02-16 11:48:37 -08:00
Girish Ramakrishnan 0dd97a0dc0 name and avatar return 200 2022-02-16 10:22:35 -08:00
Girish Ramakrishnan 9d2d5d16f3 return 200 for immediate setters which require no further processing 2022-02-16 10:09:23 -08:00
Johannes Zellner d08fb224ba use class name pattern for status leds 2022-02-16 18:52:34 +01:00
Johannes Zellner 6351e0c3fb Apply same status led indicator for mailbox sharing 2022-02-16 18:48:22 +01:00
Johannes Zellner a8de1ca37b Update translations 2022-02-16 16:31:33 +01:00
Johannes Zellner 42501fa364 Introduce css classes for status LEDs 2022-02-16 16:31:22 +01:00
Girish Ramakrishnan 9dbb299bb9 user directory: listen on ipv4 and ipv6 2022-02-15 14:27:51 -08:00
Girish Ramakrishnan 0d6c2dc1cf add ipv6 configure form 2022-02-15 13:28:46 -08:00
Girish Ramakrishnan 661799cd54 typo 2022-02-15 13:25:14 -08:00
Girish Ramakrishnan 0f25458914 rename key to match other json keys 2022-02-15 13:12:34 -08:00
Girish Ramakrishnan 41099c1131 Fix ipv4 and ipv6 routes 2022-02-15 12:51:06 -08:00
Girish Ramakrishnan d0c59c1f75 add separate route to get ipv4 and ipv6 2022-02-15 12:47:16 -08:00
Girish Ramakrishnan c6da8c8167 make ipv4 and ipv6 settings separate 2022-02-15 12:36:05 -08:00
Girish Ramakrishnan 7af69e080f network: hide IPv6 field as needed 2022-02-15 12:08:57 -08:00
Girish Ramakrishnan 1c32495f22 Show IPv6 address separately 2022-02-15 12:08:57 -08:00
Girish Ramakrishnan 0dbe8ee8f2 godaddy: invalid ipv6 2022-02-15 12:01:52 -08:00
Girish Ramakrishnan f8b124caa6 do not check if we have ipv6 to enable ipv6 2022-02-15 11:57:27 -08:00
Girish Ramakrishnan 125325721f add mail manager tests 2022-02-15 10:30:26 -08:00
Johannes Zellner d51d81cdfa Sort languages according to localeCompare() 2022-02-15 17:31:32 +01:00
Johannes Zellner aa17196120 Better integrate the app grid item action button 2022-02-15 15:26:03 +01:00
Johannes Zellner 262e06dc15 Do not overwrite the language set in localstorage 2022-02-14 18:16:50 +01:00
Johannes Zellner 9a148ab7f8 Fetch 5k users at once 2022-02-14 17:34:36 +01:00
Johannes Zellner 2ec4ad934d Add an explicit Client.getAllUsers function 2022-02-14 14:55:04 +01:00
Johannes Zellner ac57e433b1 Improve errorhandling in netcup dns 2022-02-14 10:57:06 +01:00
Johannes Zellner b4bbdda730 Fix user export based on client.js api change 2022-02-12 19:47:00 +01:00
Girish Ramakrishnan de84cbc977 add note on turn container host mode 2022-02-11 23:08:56 -08:00
Girish Ramakrishnan d6d7bc93e8 firewall: add ipxtables helper 2022-02-11 22:56:23 -08:00
Girish Ramakrishnan 8f4779ad2f Update addons to listen on ipv6
docker sets up the hostname DNS to be ipv4 and ipv6

Part of #264
2022-02-10 10:53:46 -08:00
Girish Ramakrishnan 6aa034ea41 platform: Only re-create docker network on version change 2022-02-10 09:32:22 -08:00
Johannes Zellner d0002eb7ca Fix bug when location is set without error 2022-02-10 15:41:41 +01:00
Girish Ramakrishnan ca83deb761 Docker IPv6 support
Docker's initial IPv6 support is based on allocating public IPv6 to containers.
This approach has many issues:
* The server may not get a block of IPv6 assigned to it
* It's complicated to allocate a block of IPv6 to cloudron server on home setups
* It's unclear how dynamic IPv6 is. If it's dynamic, then should containers be recreated?
* DNS setup is complicated
* Not a issue for Cloudron itself, but with -P, it just exposed the full container into the world

Given these issues, IPv6 NAT is being considered. Even though NAT is not a security mechanism as such,
it does offer benefits that we care about:
* We can allocate some private IPv6 to containers
* Have docker NAT66 the exposed ports
* Works similar to IPv4

Currently, the IPv6 ports are always mapped and exposed. The "Enable IPv6" config option is only whether
to automate AAAA records or not. This way, user can enable it and 'sync' dns and we don't need to
re-create containers etc. There is no inherent benefit is not exposing IPv6 at all everywhere unless we find
it unstable.

Fixes #264
2022-02-09 23:54:53 -08:00
Girish Ramakrishnan ff664486ff do not start if platform.start does not work 2022-02-09 23:15:37 -08:00
Girish Ramakrishnan c5f9c80f89 move comment to unbound.conf 2022-02-09 23:15:37 -08:00
Girish Ramakrishnan 852eebac4d move cloudron network creation to platform code
this gives us more control on re-creating the network with different
arguments/options when needed.
2022-02-09 23:15:37 -08:00
Girish Ramakrishnan f0f9ade972 sftp: listen on ipv6 2022-02-09 23:15:37 -08:00
Girish Ramakrishnan f3ba1a9702 unbound: always disable ip6 during install
this was br0ken anway because "-s" is always false here. this is because
/proc/net/if_inet6 which has 0 size (but has contents!).
2022-02-09 23:15:37 -08:00
Girish Ramakrishnan c2f2a70d7f vultr has ufw enabled by default 2022-02-09 23:15:37 -08:00
Girish Ramakrishnan f18d108467 nginx: add listen note 2022-02-09 23:15:37 -08:00
Girish Ramakrishnan 566def2b64 Disable IPv6 temporary address 2022-02-09 12:17:42 -08:00
Girish Ramakrishnan c9e3da22ab Revert "Disable userland proxy in new installations"
This reverts commit 430f5e939b.

Too early, apparently there is a bunch of issues and this is why
it's not disabled upstream - https://github.com/moby/moby/issues/14856
2022-02-09 09:45:04 -08:00
Johannes Zellner a764a8ad4a Expand the notification click area 2022-02-09 18:20:58 +01:00
Johannes Zellner 6552747290 Avoid showing incomplete loading state in support view 2022-02-09 17:04:20 +01:00
Johannes Zellner 15a4a7071e Remove now unsed translation strings 2022-02-09 17:00:12 +01:00
Johannes Zellner 219764923b Replace dyndns checkbox with toggle button 2022-02-09 16:55:36 +01:00
Johannes Zellner 8b35d01f68 Make the linter happy 2022-02-09 16:49:53 +01:00
Johannes Zellner 2afa13bd7c Replace checkbox with toggle button for ipv6 2022-02-09 16:48:38 +01:00
Johannes Zellner 23d34e59b2 Remove space 2022-02-09 16:31:38 +01:00
Johannes Zellner 2d999eae9c Update translations 2022-02-09 16:22:52 +01:00
Johannes Zellner 7fc92101d5 Avoid using unnecessary checkbox for solr config 2022-02-09 16:22:44 +01:00
Johannes Zellner 12fa9731b8 Make user filter translatable 2022-02-09 14:35:33 +01:00
Johannes Zellner c67a46e2a9 Actually send the overwriteDns for the clone api 2022-02-08 22:16:49 +01:00
Johannes Zellner 8a36e2c730 Half way fix for clone, we need to adjust the error reporting for the clone api from the backend 2022-02-08 22:11:41 +01:00
Johannes Zellner 7a66a104ad Update translations 2022-02-08 21:52:15 +01:00
Johannes Zellner 06d60d5aea Implement dns overwrite and pre-flight checks for multi domain clone 2022-02-08 21:52:03 +01:00
Girish Ramakrishnan 430f5e939b Disable userland proxy in new installations
https://github.com/moby/moby/issues/8356

The initial motivation for userland proxy is to enable localhost
connections since the linux kernel did not allow loopback connections
to be routed.

With hairpin NAT support (https://github.com/moby/moby/pull/6810), this
seems to be solved.
2022-02-08 11:51:37 -08:00
Girish Ramakrishnan 7bfa237d26 Update docker to 20.10.12 2022-02-08 10:57:24 -08:00
Johannes Zellner b4335f3d0d Fix angular expression typo 2022-02-08 18:05:53 +01:00
Johannes Zellner 0cc46a8dba Relayout userdirectory toolbar 2022-02-08 15:05:27 +01:00
Girish Ramakrishnan 2a2b509837 Fix error messages of clone UI 2022-02-07 23:02:31 -08:00
Girish Ramakrishnan 886515e444 clone UI now takes secondary domains 2022-02-07 22:56:34 -08:00
Girish Ramakrishnan d5640d45f7 do pre-flight dns check for secondary domains 2022-02-07 22:44:54 -08:00
Girish Ramakrishnan 27ec200fc0 main -> primary 2022-02-07 17:23:17 -08:00
Girish Ramakrishnan 4fead2411e Fix error display 2022-02-07 16:11:57 -08:00
Girish Ramakrishnan 85964676fa Fix location conflict error message 2022-02-07 16:09:43 -08:00
Girish Ramakrishnan 68c2f6e2bd Fix users test 2022-02-07 14:22:34 -08:00
Girish Ramakrishnan 75c0caaa3d rename subdomains table to locations 2022-02-07 14:04:11 -08:00
Girish Ramakrishnan 46b497d87e rename SUBDOMAIN_ to LOCATION_
location is { subdomain, domain } pair
2022-02-07 13:48:08 -08:00
Girish Ramakrishnan 964c1a5f5a remove field from errors
we have standardized on indexOf in error.message by now
2022-02-07 13:44:29 -08:00
Girish Ramakrishnan 9ae69bb683 do not use field inside error object 2022-02-07 13:44:26 -08:00
Girish Ramakrishnan f4c9d7324b typo 2022-02-07 09:27:15 -08:00
Johannes Zellner b9a76aa6b8 Add user state filter
pending layout fix if decided where it should be
the toolbar is getting crowded
2022-02-07 17:24:27 +01:00
Johannes Zellner d5481342ed Add ability to filter users by state 2022-02-07 17:18:13 +01:00
Johannes Zellner e3a0a9e5dc Hack to allow SOGo logins for more than 1k mailboxes 2022-02-07 16:22:05 +01:00
Girish Ramakrishnan 23b3070c52 add percent info when switching dashboard 2022-02-06 11:21:32 -08:00
Girish Ramakrishnan 5048f455a3 Misplaced brackets 2022-02-06 10:58:49 -08:00
Girish Ramakrishnan e27bad4bdd Fix incorrect brackets 2022-02-06 10:22:04 -08:00
Johannes Zellner 4273c56b44 Add some changes 2022-02-05 21:09:14 +01:00
Johannes Zellner f55c22bdb9 update monaco-editor 2022-02-05 20:55:48 +01:00
Johannes Zellner fc0e73657f Update xterm.js 2022-02-05 20:43:08 +01:00
Girish Ramakrishnan 0af9069f23 make linode async 2022-02-04 16:01:41 -08:00
Girish Ramakrishnan e1db45ef81 remove callback asserts 2022-02-04 15:47:38 -08:00
Girish Ramakrishnan 59b2bf72f7 make gcdns async 2022-02-04 15:46:17 -08:00
Girish Ramakrishnan 8802b3bb14 make namecheap async 2022-02-04 15:34:02 -08:00
Girish Ramakrishnan ee0cbb0e42 make route53 async 2022-02-04 15:20:49 -08:00
Girish Ramakrishnan 5d415d4d7d make cloudflare, gandi, manual, noop, wildcard, netcup, godaddy, namecom async 2022-02-04 14:36:30 -08:00
Girish Ramakrishnan 1ca07a4c92 network: ipv6 better display of error 2022-02-04 11:16:04 -08:00
Girish Ramakrishnan 3b3b510343 Check if we get IPv6 when enabling 2022-02-04 11:15:53 -08:00
Girish Ramakrishnan 5c56cdfbc7 Revert "tld.isValid is deprecated"
This reverts commit bd4097098d.

the published library does not have the function :/
2022-02-04 10:49:19 -08:00
Girish Ramakrishnan 7601b4919a make upsert remove the additional records 2022-02-04 10:22:22 -08:00
Girish Ramakrishnan 856b23d940 asyncify the vultr and DO backend 2022-02-04 10:15:35 -08:00
Girish Ramakrishnan bd4097098d tld.isValid is deprecated 2022-02-04 10:09:24 -08:00
Johannes Zellner 1441c59589 Remove left over assert 2022-02-04 17:35:44 +01:00
Girish Ramakrishnan 0373fb70d5 make waitForDns async
cloudflare is partly broken
2022-02-03 17:35:45 -08:00
Girish Ramakrishnan 9f1ab59e35 Fix link 2022-02-03 10:09:23 -08:00
Girish Ramakrishnan da5b5aadbc typo in debug 2022-02-02 15:07:50 -08:00
Girish Ramakrishnan b75afaf5d5 clone: secondary domains are required 2022-02-01 23:36:41 -08:00
Girish Ramakrishnan 26bfa32c7b Fix display of task error 2022-02-01 21:47:49 -08:00
Girish Ramakrishnan 67fe17d20c Fix crash with alias domains 2022-02-01 21:28:43 -08:00
Girish Ramakrishnan 150f89ae43 proxyauth: on invalid token, redirect user
https://forum.cloudron.io/topic/6425/403-in-proxyauth-apps-after-server-migration
2022-02-01 17:58:05 -08:00
Girish Ramakrishnan 944d364e1a turn: secret is a string 2022-02-01 17:36:51 -08:00
Girish Ramakrishnan aeef815bf7 proxyAuth: persist the secret token 2022-02-01 17:35:21 -08:00
Girish Ramakrishnan 46144ae07a lint 2022-02-01 17:35:21 -08:00
Girish Ramakrishnan 8f08ed1aed Fix blobs schema 2022-02-01 17:29:25 -08:00
Girish Ramakrishnan 73f637be26 Add 2 more changes 2022-02-01 12:09:22 -08:00
Girish Ramakrishnan 37c8ca7617 mail: use port25check.cloudron.io to check outbound port 25 connectivity 2022-01-31 16:55:56 -08:00
Girish Ramakrishnan c4bcbb8074 mail: smtp.live.com is not reachable anymore 2022-01-31 11:20:21 -08:00
Girish Ramakrishnan 19ddff058e reverseproxy: fix crash because of missing app property 2022-01-29 16:53:26 -08:00
Girish Ramakrishnan 5382e3d832 remove nginx config of stopped apps
when the cert of a stopped app gets auto-cleaned up, nginx does not
start anymore since the config references the cert.

there are two possible fixes:
* do not cleanup cert of stopped apps
* remove the nginx config of stopped apps

this implements the second approach
2022-01-28 10:23:56 -08:00
Girish Ramakrishnan ee3d1b3697 remove unused var 2022-01-27 09:16:46 -08:00
Girish Ramakrishnan 455cf1bf98 restore: set diskPath in mountOptions 2022-01-27 09:11:01 -08:00
Girish Ramakrishnan 29960b8d6b restore: add ext4 provider type 2022-01-27 09:11:01 -08:00
Johannes Zellner f074ed1ec9 Ensure we call the full appstore.js init() once the user has signed-in 2022-01-27 17:14:51 +01:00
Girish Ramakrishnan a786fad3ee mountPoint is only set for 'mountpoint' (unmanaged)
When restoring, mountPoint field is expected for managed mount points
2022-01-26 13:37:16 -08:00
Girish Ramakrishnan 8b9d821905 isMountProvider -> isManagedProvider 2022-01-26 12:40:28 -08:00
Girish Ramakrishnan 04b7c14fd7 restore: fix crash when using fs/mountpoint 2022-01-26 12:17:46 -08:00
Girish Ramakrishnan b741cfbb21 restore: setupToken must be set on the top level object 2022-01-26 10:28:36 -08:00
Girish Ramakrishnan 5517d09e45 cloudron-setup: fix curl output capture
not sure why the old method does not work. also move the cache file
2022-01-26 10:22:17 -08:00
Johannes Zellner 50adac3d99 Ensure volume mountpoints are happening before containers start up 2022-01-26 16:33:35 +01:00
Johannes Zellner 8f8a59bd87 Unbound does no longer depend on docker 2022-01-26 16:33:19 +01:00
Johannes Zellner 8e15f27080 Make unbound listen also on future devices
The local network for docker containers might not be up yet
https://unbound.docs.nlnetlabs.nl/en/latest/manpages/unbound.conf.html#term-ip-freebind-yes-or-no
2022-01-26 16:32:48 +01:00
Johannes Zellner 7a6a9cdbb4 Fix copy and paste error in restore 2022-01-26 11:22:18 +01:00
Girish Ramakrishnan e7977525a0 better error message 2022-01-25 16:41:29 -08:00
Johannes Zellner 0940ef5b54 Remove oldschool tab borders 2022-01-25 15:29:40 +01:00
Johannes Zellner 6c51cd8d7b Use better import/export icons and tone down the buttons 2022-01-25 11:01:01 +01:00
Johannes Zellner 814809f103 Update translations 2022-01-24 14:16:27 +01:00
Johannes Zellner 961cce95d7 Add user import/export translations 2022-01-24 14:16:16 +01:00
Johannes Zellner 963af4334d Add JSON import and export of mailboxes 2022-01-23 22:26:23 +01:00
Johannes Zellner 7b8c721a8a Add preliminiary text for import format
Just as a placeholder for translation once the UI is finished
2022-01-23 22:26:10 +01:00
Johannes Zellner 09e9dd0938 Fix tooltip placement 2022-01-22 10:25:36 +01:00
Johannes Zellner 36b0d4e1bc Also support user export as csv 2022-01-22 09:28:47 +01:00
Girish Ramakrishnan be9830d0d4 postgresql: enable postgis 2022-01-21 23:18:40 -08:00
Girish Ramakrishnan 8958b154e9 ldap: do not list inactive users 2022-01-21 21:07:33 -08:00
Girish Ramakrishnan d21d13afb0 Add to changes 2022-01-21 17:31:26 -08:00
Girish Ramakrishnan 0af47bba54 add UI for secondary domains
part of cloudron/box#809
2022-01-21 17:31:04 -08:00
Girish Ramakrishnan 43759061a4 set secondaryDomains environment variables
part of #809
2022-01-21 11:35:01 -08:00
Johannes Zellner a3efa8db54 Use semicolon instead of comma 2022-01-21 19:42:07 +01:00
Girish Ramakrishnan f017e297f7 secondaryDomains are always required
they can still become empty after an update but install and change_location
requires them

part of #809
2022-01-21 10:03:30 -08:00
Girish Ramakrishnan 9697dd8b4f Fix possible type 2022-01-20 16:31:29 -08:00
Johannes Zellner b604311e2a Add basic support for csv user import 2022-01-20 17:38:47 +01:00
Girish Ramakrishnan e8577d4d85 more location renaming 2022-01-16 18:56:44 -08:00
Girish Ramakrishnan 63394a666e rename location to subdomain 2022-01-16 18:49:22 -08:00
Girish Ramakrishnan e8d08968a1 rename location to subdomain
the primary subdomain was previously called 'location'. but the alias/secondary/redirect
subdomain is called 'subdomain'. this makes it all consistent.

location terminology is now used for { subdomain, domain } pair
2022-01-16 12:48:29 -08:00
Girish Ramakrishnan 1e2f01cc69 reverseProxy: refactor filename logic 2022-01-16 12:22:29 -08:00
Girish Ramakrishnan b34f66b115 add secondary domains
note that for updates to work, we keep the secondary domain optional,
even though they are really not.

part of #809
2022-01-16 12:10:48 -08:00
Girish Ramakrishnan d18977ccad reverseProxy: single writeAppNginxConfig()
this prepares for secondary domains
2022-01-16 11:29:21 -08:00
Girish Ramakrishnan 89c3847fb0 reverseProxy: refactor 2022-01-16 10:28:49 -08:00
Girish Ramakrishnan aeeeaae62a pass domain object to reduce one query 2022-01-16 10:16:14 -08:00
Girish Ramakrishnan 1e98a2affb change argument order to match others 2022-01-16 09:45:59 -08:00
Girish Ramakrishnan 3da19d5fa6 Use constants 2022-01-14 22:57:44 -08:00
Girish Ramakrishnan fd9efe3da3 rename alternateDomains to redirectDomains 2022-01-14 22:38:27 -08:00
Girish Ramakrishnan d7d46a5a81 rename alternateDomains to redirectDomains 2022-01-14 22:32:34 -08:00
Girish Ramakrishnan d4369851bf ldap: add organizationalperson and top objectclasses
these are used by firefly-iii ldap atleast
2022-01-14 14:31:33 -08:00
Girish Ramakrishnan 97e439f8a3 more profileConfig rename 2022-01-13 16:49:06 -08:00
Girish Ramakrishnan e9945d8010 Update cloudron-syslog 2022-01-13 16:29:50 -08:00
Girish Ramakrishnan 2f2a832db1 Version 1.1.0 2022-01-13 16:26:14 -08:00
Girish Ramakrishnan a0d9f7fe75 Update packages 2022-01-13 16:25:43 -08:00
Girish Ramakrishnan 9109c89d8f make username mandatory when profile locked 2022-01-13 15:48:42 -08:00
Girish Ramakrishnan 2085a4a7d4 rename directoryConfig to profileConfig 2022-01-13 14:49:05 -08:00
Girish Ramakrishnan e0b6ce9bd8 remove multiple onReady 2022-01-13 14:49:05 -08:00
Girish Ramakrishnan d35f948157 rename directory config to profile config 2022-01-13 14:39:49 -08:00
Girish Ramakrishnan 09d3d258b6 do not retry forever if dpkg install fails
https://forum.cloudron.io/topic/6329/cloudron-update-failing
2022-01-13 11:04:45 -08:00
Johannes Zellner 82f6359547 Fix import/export tooltips 2022-01-13 17:25:12 +01:00
Johannes Zellner 5dd318b5ab First version of users import and export feature 2022-01-13 15:14:26 +01:00
Girish Ramakrishnan 7082dfd418 allow username to be set by admin, when username is empty 2022-01-12 16:36:09 -08:00
Girish Ramakrishnan 38211e719e Update packages 2022-01-12 16:36:09 -08:00
Girish Ramakrishnan 4513b6de70 add a way for admins to set username when profiles are locked 2022-01-12 16:21:00 -08:00
Girish Ramakrishnan fd545a43a6 mail: add autofocus for edit dialogs 2022-01-10 22:08:55 -08:00
Girish Ramakrishnan ded5db20e6 mail: use same validation logic as mailbox name for aliases as well 2022-01-10 22:06:37 -08:00
Johannes Zellner 3a96bdd40a Add cifs seal support for volumes 2022-01-10 16:45:58 +01:00
Johannes Zellner 6cf7ae4788 Add changes 2022-01-10 16:45:44 +01:00
Johannes Zellner df85a70ccc Add seal option to restore ui 2022-01-10 16:30:12 +01:00
Johannes Zellner 1ed91f40ab Update translations 2022-01-10 16:09:53 +01:00
Johannes Zellner 9ed19c8b8e Add cifs seal translation 2022-01-10 16:09:42 +01:00
Johannes Zellner 93982bae7b Support cifs seal option for backups 2022-01-10 15:55:00 +01:00
Johannes Zellner 0508a04bab Support cifs seal option
https://manpages.debian.org/testing/cifs-utils/mount.cifs.8.en.html#seal
2022-01-10 14:28:09 +01:00
Girish Ramakrishnan e7983f03d8 Update packages 2022-01-09 16:39:52 -08:00
Girish Ramakrishnan eada292ef3 email addon: add additional env vars 2022-01-09 16:03:35 -08:00
Girish Ramakrishnan 3a19be5a2e filemanager: fix file delete 2022-01-07 12:03:16 -08:00
Johannes Zellner 5e046a26e9 Update russian translation 2022-01-07 17:13:33 +01:00
Johannes Zellner 6b009016b8 Add input field to configure user directory secret 2022-01-07 17:13:25 +01:00
Johannes Zellner 8bb4e947a0 Exposed ldap got renamed to user directory 2022-01-07 14:22:07 +01:00
Johannes Zellner 52385fcc9c Rename exposed ldap to user directory 2022-01-07 14:06:13 +01:00
Johannes Zellner cc998ba805 Implement full exposed ldap auth 2022-01-07 13:11:27 +01:00
Girish Ramakrishnan 37d641ec76 waitForDns: support AAAA 2022-01-06 22:08:28 -08:00
Girish Ramakrishnan 346dc4f861 add ui to enable/disable ipv6 2022-01-06 21:57:36 -08:00
Girish Ramakrishnan 3fd45f8537 settings: add route to configure ipv6
part of #264
2022-01-06 21:42:03 -08:00
Girish Ramakrishnan f4a21bdeb4 sysinfo: fixed provider now takes ipv6 optionally
part of #264
2022-01-06 21:39:28 -08:00
Girish Ramakrishnan ccc5f5f004 sysinfo: add ipv6 field for fixed interface 2022-01-06 21:38:23 -08:00
Girish Ramakrishnan d65ac353fe initial ipv6 support
this adds and waits for AAAA records based on setting. we have to wait
for both A and AAAA because we don't know if the user is accessing via
IPv4 or IPv6. For Let's Encrypt, IPv6 is preferred (but not sure if it
retries if IPv6 is unreachable).

part of #264
2022-01-06 17:22:45 -08:00
Girish Ramakrishnan 7d7539f931 replace the forEach 2022-01-06 17:22:45 -08:00
Girish Ramakrishnan ac19921ca1 dns: refactor register/unregisterLocation logic
this prepares it for ipv6 support
2022-01-06 16:34:33 -08:00
Girish Ramakrishnan 0654d549db sysinfo: return the ipv4 and ipv6 address 2022-01-06 16:21:30 -08:00
Girish Ramakrishnan ac1fd54cce server_ip returns ipv4 and ipv6 now 2022-01-06 12:51:08 -08:00
Girish Ramakrishnan 91b1265833 sysinfo: ensure we return 5952 ipv6 format 2022-01-06 12:33:56 -08:00
Girish Ramakrishnan 2bc5c3cb6e Fixes to getServerIPv6() 2022-01-06 12:22:16 -08:00
Girish Ramakrishnan cc61ee00be settings: add ipv6 2022-01-06 11:38:41 -08:00
Girish Ramakrishnan c74556fa3b promise-retry: add a retry function to abort early 2022-01-06 11:28:30 -08:00
Girish Ramakrishnan 1180820b6f dnsConfig -> domainConfig 2022-01-05 23:16:34 -08:00
Girish Ramakrishnan bf51bc25e9 dnsConfig -> domainConfig
this prepares for the incoming settings.getDnsConfig()
2022-01-05 22:56:10 -08:00
Girish Ramakrishnan bbf1a5af3d sysinfo: add interface to get IPv6 address 2022-01-05 18:08:15 -08:00
Girish Ramakrishnan 235d18cbb1 add note on the promiseRetry usage 2022-01-05 12:27:03 -08:00
Girish Ramakrishnan 32668b04c6 mail: fix name validation
https://forum.cloudron.io/topic/6229/mailbox-name-can-only-contain-alphanumerals-and-dot/10
2022-01-05 09:55:10 -08:00
Girish Ramakrishnan 9ccf46dc8b Bump year 2022-01-05 09:18:48 -08:00
Girish Ramakrishnan 7ea495c361 Bump year to 2022, happy new year! 2022-01-05 09:18:26 -08:00
Girish Ramakrishnan d049aa1b57 2022 now 2022-01-05 09:17:13 -08:00
Johannes Zellner 44a149d1d9 Add exposed ldap secret for bind auth 2022-01-05 14:35:48 +01:00
Johannes Zellner 38dd7e7414 Update lockfile 2022-01-05 14:33:07 +01:00
Johannes Zellner fb5d726d42 Ensure tests have sudo access to setldapallowlist 2022-01-05 14:32:50 +01:00
Girish Ramakrishnan 531a6fe0dc Use ipv4.api.cloudron.io endpoint for IPv4 detection 2022-01-04 22:14:53 -08:00
Girish Ramakrishnan 15d0dd93f4 mail: allow underscore in mail address 2022-01-04 14:02:58 -08:00
Girish Ramakrishnan d8314d335a implement manifest.logPaths 2022-01-04 10:04:40 -08:00
Girish Ramakrishnan b18626c75c getLocalLogfilePaths -> getLogPaths 2022-01-04 09:14:13 -08:00
Johannes Zellner a04abf25f4 We now use esversion 11 2022-01-04 14:40:33 +01:00
Girish Ramakrishnan ebb6a246cb Update cloudron-manifestformat 2022-01-03 18:42:01 -08:00
Girish Ramakrishnan e672514ec7 update packages
also removes unused mime and mustache-express
2022-01-03 10:05:09 -08:00
Johannes Zellner b531a10392 Invite links do not depend on resetToken expiration 2021-12-28 16:34:47 +01:00
Johannes Zellner 9a71360346 Only check for PermitRootLogin if we want to enable remote support 2021-12-26 17:51:05 +01:00
Johannes Zellner b241c82eba Update xterm.js to 4.16.0 2021-12-26 11:11:36 +01:00
Girish Ramakrishnan 128e3c41a3 remove extra arg in addDomain 2021-12-24 15:15:07 -08:00
Girish Ramakrishnan 5e9a46d71e filemanager: fix mounting of filesystem and mountpoint backends 2021-12-24 15:05:51 -08:00
Girish Ramakrishnan 66fd05ce47 sftp: add note 2021-12-23 22:35:28 -08:00
Johannes Zellner 7117c17777 Add exposed ldap tests 2021-12-23 21:31:48 +01:00
Johannes Zellner 9ad7123da4 Fix exposed ldap bind
the duplicate functions should probably share some code
2021-12-23 17:58:08 +01:00
Johannes Zellner 98fd78159e Do not require app auth for exposed ldap 2021-12-23 10:23:54 +01:00
Girish Ramakrishnan 3d57b2b47c docker: loop through the ip net addr output
all of a sudden, my linux box has the actual address in [1].

ip -f inet -j addr show wlp2s0

[{
        "addr_info": [{}]
    },{
        "ifindex": 3,
        "ifname": "wlp2s0",
        "flags": ["BROADCAST","MULTICAST","UP","LOWER_UP"],
        "mtu": 1500,
        "qdisc": "mq",
        "operstate": "UP",
        "group": "default",
        "txqlen": 1000,
        "addr_info": [{
                "family": "inet",
                "local": "192.168.1.8",
                "prefixlen": 24,
                "broadcast": "192.168.1.255",
                "scope": "global",
                "dynamic": true,
                "noprefixroute": true,
                "label": "wlp2s0",
                "valid_life_time": 78146,
                "preferred_life_time": 78146
            }]
    },{
        "addr_info": [{}]
    },{
        "addr_info": [{}]
    }
]
2021-12-22 16:48:00 -08:00
Girish Ramakrishnan 2bc49682c4 mailproxy: use http 2021-12-21 12:30:28 -08:00
Girish Ramakrishnan c25afaa94f Give upstreamVersion in manifest priority 2021-12-21 11:25:23 -08:00
Girish Ramakrishnan bb2d9fca9b update manifest format for 'upstreamVersion' field 2021-12-21 11:24:04 -08:00
Girish Ramakrishnan be8ab3578b update mysql container
* remove 'request' module usage entirely
* http based service
2021-12-20 10:52:42 -08:00
Girish Ramakrishnan 43af0e1e3c Update turn base image 2021-12-20 09:02:00 -08:00
Girish Ramakrishnan 43f33a34b8 switch mail container to http 2021-12-19 12:11:47 -08:00
Girish Ramakrishnan 7aded4aed7 switch status api to http as well 2021-12-17 13:39:06 -08:00
Girish Ramakrishnan d37652d362 postgresql container update
* makes the service http based
* no more request module usage
2021-12-17 13:26:34 -08:00
Girish Ramakrishnan 9590a60c47 Update base image of some addons to 3.2.0 2021-12-17 09:18:22 -08:00
Girish Ramakrishnan 54bb7edf3b asyncify importAppDatabase 2021-12-17 07:47:20 -08:00
Girish Ramakrishnan 34d11f7f6e mongodb container update
* upgrades mongodb to 4.4
* makes the service http based
* no more request module usage
2021-12-16 22:49:38 -08:00
Girish Ramakrishnan 3a956857d2 update package.lock for newer node 2021-12-16 22:43:23 -08:00
Girish Ramakrishnan 08d41f4302 update redis base image 2021-12-16 22:26:43 -08:00
Girish Ramakrishnan 219fafc8e4 Update base image to 3.2.0 (mongodb 4.4) 2021-12-16 16:26:31 -08:00
Girish Ramakrishnan 53593a10a9 redis: fix issue with double headers 2021-12-16 14:06:52 -08:00
Johannes Zellner f35abe1ea0 Fix email event log search when pagination was used 2021-12-16 11:22:17 +01:00
Johannes Zellner e33a1ca47d Update lock file to v2 with node 16 2021-12-16 10:45:57 +01:00
Girish Ramakrishnan 26dc63553e update redis addon to use pipeline+http api 2021-12-15 17:54:50 -08:00
Girish Ramakrishnan 83fd3d9ab4 We now require node 16.13.1 2021-12-15 17:54:50 -08:00
Johannes Zellner d69758e559 Only set ldap allowlist if file exists and is not empty 2021-12-15 19:23:22 +01:00
Johannes Zellner d6fbe2a1bb Use correct error object 2021-12-15 17:22:16 +01:00
Johannes Zellner 765422ac38 Ensure sorting by domain and mailbox name for aliases 2021-12-15 16:06:22 +01:00
Girish Ramakrishnan a3280a0e30 Update node to 16.13.1
useful for using stream.promises
2021-12-14 20:49:25 -08:00
Girish Ramakrishnan e7f94b6748 Update base image to 3.1.0 2021-12-14 20:47:41 -08:00
Johannes Zellner 0d3e9e32f0 Reduce vertical space for email aliases 2021-12-14 18:35:32 +01:00
Johannes Zellner bca91d4928 Ensure many email aliases don't overflow the table 2021-12-14 18:02:20 +01:00
Johannes Zellner 5d7ac82a69 Never skip backup on manual update by default 2021-12-14 10:21:52 +01:00
Girish Ramakrishnan 41587ec540 add missing space 2021-12-13 11:45:04 -08:00
Johannes Zellner 5307a187d5 Add a way to stop the mail location change task after 2 minutes 2021-12-13 20:42:35 +01:00
Girish Ramakrishnan 84712ecc10 notfound: better text message 2021-12-13 11:42:11 -08:00
Girish Ramakrishnan 6492c9b71f nginx: remove combined2 custom log format
collectd does not use this anymore (eb47476c83)

This makes nginx work better with a variety of tools like Wazuh and ossec

https://forum.cloudron.io/topic/6077/nginx-logs-format/
https://forum.cloudron.io/topic/6161/implement-default-nginx-logging
2021-12-13 10:47:12 -08:00
Girish Ramakrishnan 0c849d0df4 Fix backup error message width 2021-12-13 09:40:41 -08:00
Johannes Zellner 438bd36267 Fixup exposed ldap startup state 2021-12-10 18:06:23 +01:00
Johannes Zellner 3120edfe04 Better form disable handling 2021-12-10 17:53:52 +01:00
Johannes Zellner eaa7e3870b Improve exposed ldap error reporting 2021-12-10 17:47:23 +01:00
Johannes Zellner c775e8ae05 Clear exposed ldap errors correctly 2021-12-10 17:10:10 +01:00
Johannes Zellner 1c7eeb6ac6 Handle exposed ldap allowlist 2021-12-10 17:04:30 +01:00
Johannes Zellner d524118759 Fixup bottom margin of group header 2021-12-09 21:29:13 +01:00
Johannes Zellner 643a1a0080 Give user search field the initial focus 2021-12-09 21:24:51 +01:00
Johannes Zellner b6159aabae Remove page size selector and move pagination to the bottom 2021-12-09 21:21:21 +01:00
Johannes Zellner 52f1205822 Fix pagination in mail view 2021-12-09 21:00:43 +01:00
Girish Ramakrishnan f86f5189f0 remove old mailbox sharing section 2021-12-09 09:34:10 -08:00
Johannes Zellner 86d642c8a3 Fixup ldap group tests 2021-12-09 17:23:14 +01:00
Johannes Zellner d02d2dcb80 Expose ldap groups to apps 2021-12-09 15:07:30 +01:00
Johannes Zellner f77f57dd17 Attempt to fix visual issues with pagination 2021-12-09 14:58:29 +01:00
Girish Ramakrishnan afd4c16763 Various fixes to mailbox sharing ui 2021-12-08 17:01:25 -08:00
Girish Ramakrishnan b5695c98af mailserver: make restart wait for restart 2021-12-08 16:55:44 -08:00
Girish Ramakrishnan 9cad1c19c0 add ui to enable/disable mailbox sharing 2021-12-08 11:45:39 -08:00
Girish Ramakrishnan fcdc53f7bd add flag to enable/disable mailbox sharing 2021-12-08 11:05:13 -08:00
Girish Ramakrishnan 5d85fe2577 pass the attempt as argument 2021-12-08 10:19:16 -08:00
Girish Ramakrishnan 013f5d359d pass debug to promise-retry 2021-12-07 11:18:26 -08:00
Girish Ramakrishnan ae0e572593 promise-retry: debug retry errors 2021-12-07 11:14:24 -08:00
Girish Ramakrishnan b4ed05c911 disable exim4 2021-12-07 09:42:25 -08:00
Girish Ramakrishnan 683ac9b16e remove support for manifest version 1
this is long untested by now
2021-12-06 17:44:09 -08:00
Girish Ramakrishnan 2415e1ca4b Prefix email addon variables with CLOUDRON_EMAIL instead of CLOUDRON_MAIL
otherwise, it's conflicting with the sendmail and recvmail addons
2021-12-06 17:39:29 -08:00
Girish Ramakrishnan cefbe7064f Fix crash when changing the location of app with disabled sendmail addon 2021-12-06 13:59:00 -08:00
Girish Ramakrishnan a687b7da26 netcup: remove debugs flooding the logs 2021-12-06 13:37:14 -08:00
Johannes Zellner ab6c352538 Update translations 2021-12-05 11:44:15 +01:00
Johannes Zellner 83bd86dd6d Use explicit translation for navbar users 2021-12-05 11:43:59 +01:00
Girish Ramakrishnan ea117b1654 wellknown: move the doc links to the description 2021-12-03 19:33:12 -08:00
Girish Ramakrishnan 8cbdea57d8 add jitsi to well-known config 2021-12-03 19:16:30 -08:00
Girish Ramakrishnan 8028b93f53 domains: put well known in separate dialog 2021-12-03 19:07:04 -08:00
Girish Ramakrishnan ea2b11e448 Fix tests 2021-12-03 18:33:49 -08:00
Girish Ramakrishnan 39807e6ba4 domain: split the config and wellknown routes
we want to add more stuff to the UI like the jitsi URL
2021-12-03 18:14:46 -08:00
Girish Ramakrishnan 5592dc8a42 schema: add cron to apps table 2021-12-03 13:02:25 -08:00
Johannes Zellner d9cee38906 Make exposed LDAP section translatable 2021-12-03 14:19:21 +01:00
Johannes Zellner b0ba29ab3c Ensure title sizes are consistent in users view 2021-12-03 12:45:40 +01:00
Johannes Zellner e248b2aacf Provide select dropdown for app inbox 2021-12-03 11:23:25 +01:00
Girish Ramakrishnan aab69772e6 mailbox: add app owner type
this is useful when we create mailboxes for the recvmail addon
2021-12-02 22:28:06 -08:00
Girish Ramakrishnan b9b2ebe202 allow app to be set as mailbox owner 2021-12-02 22:22:52 -08:00
Girish Ramakrishnan 2ecdfcdbd2 Fix icon of mail manager 2021-12-02 17:58:43 -08:00
Girish Ramakrishnan a5a9fce1eb mail: allow masquerading for mail manager
this is mostly for the UI, it's hard to hide just this
2021-12-02 14:56:37 -08:00
Girish Ramakrishnan 2077f1de21 hide outbound and status tabs for mail manager 2021-12-02 14:56:19 -08:00
Girish Ramakrishnan 3f33497c8e show email help in a documentation dropdown 2021-12-02 14:49:35 -08:00
Girish Ramakrishnan 5a35284f98 email: show text for logs 2021-12-02 12:55:36 -08:00
Girish Ramakrishnan 019bff5738 email: move buttons to the bottom right for consistency 2021-12-02 12:44:30 -08:00
Girish Ramakrishnan bf087c49a1 AtLeast and not Atleast 2021-12-02 12:21:59 -08:00
Girish Ramakrishnan 6617ecb114 Use isAtleastOwner instead of role directly 2021-12-02 09:32:51 -08:00
Girish Ramakrishnan 2c5b3d2c07 add mail manager role
part of cloudron/box#807
2021-12-02 09:29:35 -08:00
Girish Ramakrishnan e5fecdaabf Add mail manager role
part of #807
2021-12-02 09:24:09 -08:00
Girish Ramakrishnan 141d9fe4a6 split busy into inbox/mailbox busy 2021-12-01 20:37:44 -08:00
Johannes Zellner 19532428d0 Embedd the password show/hide icons into javascript as svg 2021-12-01 14:05:21 +01:00
Girish Ramakrishnan 845315f52c fix doc link 2021-11-30 17:38:37 -08:00
Girish Ramakrishnan f22e43e189 add cron description 2021-11-29 09:54:52 -08:00
Johannes Zellner 412bb406c0 Do not attempt to start exposed ldap server again 2021-11-26 10:50:14 +01:00
Johannes Zellner 1efdb846f3 Pass allowlist for exposed directory server 2021-11-26 10:44:10 +01:00
Johannes Zellner 98b28db092 Store allowlist for exposed directory server 2021-11-26 10:43:50 +01:00
Johannes Zellner a5d34306e5 Better separate external and exposed user directory support 2021-11-26 10:32:41 +01:00
Johannes Zellner 63fe75ecd2 Reduce noisy externalldap debug()s 2021-11-26 09:55:59 +01:00
Johannes Zellner c51a4514f4 start/stop exposed LDAP depending on settings 2021-11-26 09:50:21 +01:00
Girish Ramakrishnan 3dcbeb11b8 mail: use dashboardDomain and not mailDomain
also remove unused mail_domain
2021-11-25 15:04:30 -08:00
Girish Ramakrishnan e5301fead5 exclude externalldap debugs by default 2021-11-25 14:49:59 -08:00
Johannes Zellner 001c1fdc59 Add basic settings form for exposed LDAP 2021-11-24 17:08:38 +01:00
Johannes Zellner a01984cbef Update language files 2021-11-24 16:35:54 +01:00
Johannes Zellner 11d6916841 Fix language package download url 2021-11-24 16:35:47 +01:00
Johannes Zellner 4a467c4dce Add crud for exposed ldap settings 2021-11-23 18:00:07 +01:00
Johannes Zellner 3a8aaf72ba Expose LDAP via iptables 2021-11-23 12:37:03 +01:00
Johannes Zellner 735737b513 Initial attempt to expose the ldap server 2021-11-22 21:29:23 +01:00
Johannes Zellner 37f066f2b0 Fix user signup when profile is locked and add tests 2021-11-22 20:42:51 +01:00
Johannes Zellner 1a9cfd046a Update invite route tests 2021-11-22 19:32:42 +01:00
Johannes Zellner be03a21214 The clipboard copy need readonly and not disabled 2021-11-22 17:56:53 +01:00
Johannes Zellner 611c5de9f3 Allow deeplinking into the mail view 2021-11-19 15:45:16 +01:00
Johannes Zellner 9d97391c54 Fix missing DOM node in mail view 2021-11-19 10:12:39 +01:00
Girish Ramakrishnan e109797420 email: fix doc links 2021-11-18 11:48:30 -08:00
Girish Ramakrishnan 31523af5e1 ami: fix instance id check 2021-11-17 19:05:26 -08:00
Girish Ramakrishnan e71d932de0 eventlog: add Json suffix to json fields 2021-11-17 12:31:46 -08:00
Girish Ramakrishnan 7f45e1db06 send new login location to user email 2021-11-17 11:53:03 -08:00
Girish Ramakrishnan 2ab2255115 fix dhparam generation
it cannot be created in default config creation time since it is
already run pre-VM snapshot time
2021-11-17 11:48:06 -08:00
Girish Ramakrishnan 515b1db9d0 Fix tests 2021-11-17 11:35:44 -08:00
Girish Ramakrishnan a7fe7b0aa3 boxerror: add acme error code 2021-11-17 10:54:26 -08:00
Girish Ramakrishnan 89389258d7 pass correct auditSource when raising notifications
this fixes the bug where automatic app update notification were not
raised.
2021-11-17 10:42:53 -08:00
Girish Ramakrishnan 1aacf65372 apps: pass the auditSource to addTask()
this is required for the notification logic to know what caused the
task (cron or manual, for example)
2021-11-17 10:38:02 -08:00
Girish Ramakrishnan 7ffcfc5206 auditSource: add PLATFORM 2021-11-17 10:33:28 -08:00
Girish Ramakrishnan 5ab2d9da8a notifications: remove dead code 2021-11-17 10:26:47 -08:00
Girish Ramakrishnan cd302a7621 add missing await 2021-11-17 09:38:01 -08:00
Johannes Zellner bf5ae85b6b Ensure reveal indicator is always inserted right after the input node 2021-11-17 14:39:44 +01:00
Girish Ramakrishnan 1c8e699a71 generate dhparams per server
this way we don't need to save/restore it from the database.
2021-11-16 23:03:16 -08:00
Girish Ramakrishnan c4db0d746d acme: if account key was revoked, generate new account key
the plan was to migrate only specific keys but this allows us the
flexibility to revoke keys after the release (since we have not
gotten response from DO about access to old 1-click images so far).
2021-11-16 22:57:40 -08:00
Girish Ramakrishnan b7c5c99301 move turn secret generation 2021-11-16 22:37:42 -08:00
Girish Ramakrishnan 132c1872f4 sftp: move key generation to sftp code 2021-11-16 21:52:39 -08:00
Girish Ramakrishnan 0f04933dbf backups: fix issue where mail backups were not cleaned up 2021-11-16 19:52:51 -08:00
Girish Ramakrishnan 6d864d3621 ensure we have atleast 1GB before making an update 2021-11-16 18:20:40 -08:00
Girish Ramakrishnan b6ee1fb662 mail: add non-tls ports for recvmail addon 2021-11-16 17:21:34 -08:00
Girish Ramakrishnan 649cd896fc throw error and not return 2021-11-16 14:46:58 -08:00
Girish Ramakrishnan 39be267805 restore: secrets must be copied over after downloading box backup 2021-11-16 11:14:41 -08:00
Girish Ramakrishnan f6356b2dff speed up dhparam creation 2021-11-16 09:53:43 -08:00
Johannes Zellner 48574ce350 Add missing await 2021-11-16 18:48:13 +01:00
Johannes Zellner f3f968e995 Change positioning strategy for reveal button to fix more complex layouts 2021-11-16 13:20:22 +01:00
Girish Ramakrishnan 40a3145d92 Add more bad account keys and fix fresh cloudron migration 2021-11-16 00:56:59 -08:00
Girish Ramakrishnan f42430b7c4 regenerate acme key of DO 1-click image
https://community.letsencrypt.org/t/receiving-expiration-emails-for-dozens-of-domains/165441
2021-11-16 00:25:59 -08:00
Girish Ramakrishnan 178d93033f 7.0.4 changes 2021-11-15 23:51:06 -08:00
Girish Ramakrishnan 01a1803625 provision: delay initialization of secrets until provision time
when we create the DO 1-click image, the key also gets snapshotted.

https://community.letsencrypt.org/t/receiving-expiration-emails-for-dozens-of-domains/165441
2021-11-15 23:33:54 -08:00
Girish Ramakrishnan 42eef42cf3 Add to changes 2021-11-15 13:58:59 -08:00
Girish Ramakrishnan 9c096b18e1 demo: limit to 20 apps 2021-11-15 13:55:29 -08:00
Johannes Zellner b54c6ff5c5 Ensure angular templates are hidden until ready 2021-11-15 20:53:55 +01:00
Girish Ramakrishnan aa3ee2e180 cloudron-support: add option to reset account
new cli option --reset-appstore-account
2021-11-15 10:06:18 -08:00
Johannes Zellner 8f58ee37ca Give buttons more space for languages using long strings 2021-11-13 20:54:05 +01:00
Girish Ramakrishnan fdefc780b4 docker: hardcode the bridge gateway IP
on some environments like ESXi, the gateway gets the dynamic IP 172.18.0.2.
we have hardcoded 172.18.0.1 in many places in the code

https://forum.cloudron.io/topic/5987/install-cloudron-7-0-3-on-ubuntu-20-04-3-esxi
2021-11-12 09:04:03 -08:00
Johannes Zellner 3826ae64c6 Ensure the main login route is rate-limited 2021-11-12 11:14:21 +01:00
Johannes Zellner dcdafda124 Remove deprecated developer/login route 2021-11-12 11:12:15 +01:00
Johannes Zellner 12b2ee43d4 Preserve app filters in localStorage 2021-11-11 15:11:09 +01:00
Girish Ramakrishnan fc2cc25861 Update manifest-format (httpPaths) 2021-11-09 21:56:52 -08:00
Girish Ramakrishnan 68db4524f1 remove unused httpPaths from manifest 2021-11-09 21:50:33 -08:00
Girish Ramakrishnan 48b75accdd 7.0.4 changes 2021-11-09 09:31:58 -08:00
Johannes Zellner 0313a60f44 Fix newline stripping when passing the tmp file as path
This fixes the issue where the input data gets too large for the
commandline argument buffer
2021-11-09 16:05:36 +01:00
Johannes Zellner 54c846fed6 Fix toolbar buttons in notification view for mobile 2021-11-08 21:50:44 +01:00
Girish Ramakrishnan 9897b5d18a appstore: fix crash if account already registered 2021-11-08 10:45:57 -08:00
Johannes Zellner 9a975fae43 Update various node modules with security updates 2021-11-08 12:30:01 +01:00
Johannes Zellner a1b286acea Update xterm.js 2021-11-08 12:27:27 +01:00
Johannes Zellner bd0ddc26cc Update monaco-editor 2021-11-08 12:26:07 +01:00
Johannes Zellner 2ad69dcd93 Update yargs 2021-11-08 12:24:53 +01:00
Johannes Zellner 154f46a631 Bring sass and gulp deps up-to-date 2021-11-08 12:23:38 +01:00
Johannes Zellner ab0a45a394 Update caniuse database 2021-11-08 11:41:03 +01:00
Johannes Zellner 6fa8de468b Bring font-awesome up-to-date 2021-11-08 11:40:13 +01:00
Girish Ramakrishnan e4cc431d35 Do not nuke all the logrotate configs on update
this was added many releases ago to migrate to new logrotate configs.
looks like I forgot to remove this.

https://forum.cloudron.io/topic/4381/safe-to-truncate-home-yellowtent-platformdata-logs-when-large-disk-consumer
2021-11-04 09:41:33 -07:00
Girish Ramakrishnan 535a755e74 7.1.0 changes 2021-11-03 15:08:48 -07:00
Johannes Zellner ae5df83c5d Also attempt to set a favicon for proxy auth 2021-11-03 22:16:25 +01:00
Johannes Zellner 3f54f001b3 Add fontawesome to proxy auth 2021-11-03 22:12:44 +01:00
Johannes Zellner 2ae77a5ab7 Provide dashboardOrigin to proxy auth for stylesheet sourcing 2021-11-03 22:12:30 +01:00
Johannes Zellner 86a6aa5014 Add missing file 2021-11-03 22:04:24 +01:00
Johannes Zellner e36d7665fa The profile based password reset does not return a resetLink 2021-11-03 22:03:08 +01:00
Johannes Zellner 29fa26a9fc Also add password reveal to proxy auth form 2021-11-03 22:02:59 +01:00
Johannes Zellner 11fc5248c2 Add password-reveal directive for password inputs 2021-11-03 21:57:52 +01:00
Girish Ramakrishnan 786b627bad add 7.0.3 changes 2021-11-03 12:21:12 -07:00
Girish Ramakrishnan 45596e29cd update translations 2021-11-03 12:20:02 -07:00
Girish Ramakrishnan c7ddbea8ed restore: download mail backup in restore phase
if we download it in the platform start phase, there is no way to
give feedback to the user. so it's best to show the restore UI and
not redirect to the dashboard.
2021-11-03 12:10:40 -07:00
Johannes Zellner 13637ef8f3 Remove redundant use strict 2021-11-03 19:47:34 +01:00
Johannes Zellner b6962fa0f7 Set viewport meta tag for proxy auth login 2021-11-03 19:30:19 +01:00
Girish Ramakrishnan af2a8ba07f add retry to platform.start instead
this is because it holds a lock and cannot be re-tried

See also 0c0aeeae4c which tried to
make it for all startup tasks
2021-11-02 23:35:53 -07:00
Girish Ramakrishnan 4ffe03553a database: sqlMessage can be undefined for connection errors 2021-11-02 23:23:59 -07:00
Girish Ramakrishnan f505fdd5cb remove the space 2021-11-02 18:07:45 -07:00
Girish Ramakrishnan ce4f5c0ad6 backups: print the app index/total 2021-11-02 18:07:19 -07:00
Girish Ramakrishnan de2c596394 backups: typo
this resulted in incomplete backups when there is an app with backups disabled
2021-11-02 18:00:04 -07:00
Girish Ramakrishnan 6cb041bcb2 Print readable sizes in the log 2021-11-02 17:51:27 -07:00
Girish Ramakrishnan 0c0aeeae4c retry startup tasks on database error
https://forum.cloudron.io/topic/5909/cloudron-7-0-1-gitlab-stuck-after-update
2021-11-02 14:05:51 -07:00
Girish Ramakrishnan 78f3ba06ed enable the password reset and ghost buttons for self 2021-11-02 14:02:15 -07:00
Girish Ramakrishnan 8bfb3d6b6d mail: save message-id in eventlog 2021-11-02 01:42:07 -07:00
Girish Ramakrishnan f803754e08 mail: fix eventlog search 2021-11-02 01:00:28 -07:00
Girish Ramakrishnan 09cfce79fb mail: fix direction field in eventlog of deferred mails 2021-11-02 00:48:01 -07:00
Girish Ramakrishnan 6479e333de pop3: fix crash when authenticating non-existent mailbox 2021-11-01 19:54:39 -07:00
Girish Ramakrishnan 28d1d5e960 ldap: make mailbox app passwords work with sogo 2021-11-01 19:17:30 -07:00
Girish Ramakrishnan 15d8f4e89c ldap: remove legacy sogo search route 2021-11-01 17:08:23 -07:00
Girish Ramakrishnan 8fdbd7bd5f 7.0.3 changes 2021-11-01 16:17:35 -07:00
Girish Ramakrishnan 98b562e2e6 Disable the buttons instead of hiding them (like the delete button) 2021-11-01 16:09:36 -07:00
Girish Ramakrishnan a9fc6a2cba add gl translation to ignore list 2021-11-01 16:09:26 -07:00
Girish Ramakrishnan 7b5ed0b2a1 support: set filePath when user is root 2021-11-01 12:20:47 -07:00
Johannes Zellner 139bd32224 Fix cog icon on app grid item hover for darkmode 2021-10-29 12:05:58 +02:00
Girish Ramakrishnan b69c5f62c0 Add to changes 2021-10-28 10:27:32 -07:00
Girish Ramakrishnan 16ddff1d1a disable impersonate when no username instead of hiding 2021-10-28 10:26:41 -07:00
Girish Ramakrishnan d47cf5fd60 Show notification for invitation link sent 2021-10-28 10:23:07 -07:00
Girish Ramakrishnan 7675048563 update translations 2021-10-28 10:08:40 -07:00
Johannes Zellner e8b7591e7c Show notification on password reset like in profile page instead of closing the dialog 2021-10-28 19:04:02 +02:00
Johannes Zellner 0daf926740 Use profile based password reset from profile page 2021-10-28 18:52:40 +02:00
Johannes Zellner 63f6f065ba Add and fixup invite link related tests 2021-10-28 11:18:31 +02:00
Johannes Zellner 92f0f56fae do not strictly require fallbackEmail on user creation but provide a fallback 2021-10-28 10:29:02 +02:00
Johannes Zellner cb8aa15e62 Do not allow setting ghost password for user without username 2021-10-27 23:36:44 +02:00
Johannes Zellner 6cc9d610f1 Hide impersonate button for users which do not have a username yet 2021-10-27 23:31:22 +02:00
Johannes Zellner 512345fd41 Show email instead of fallbackEmail if no username is set 2021-10-27 22:57:12 +02:00
Johannes Zellner 6dcfef639c Patch up clipboard buttons 2021-10-27 22:41:02 +02:00
Johannes Zellner 3c08be0168 Fix wrong indentation 2021-10-27 22:35:58 +02:00
Johannes Zellner 4356d673bc Fix wrong assert and minor typos 2021-10-27 22:31:54 +02:00
Johannes Zellner 38901c7716 Update translations 2021-10-27 22:29:38 +02:00
Johannes Zellner 46f8c9a702 Fix typos 2021-10-27 22:29:11 +02:00
Girish Ramakrishnan 5ece159fba sftp: fix crash when creating directory 2021-10-27 13:17:23 -07:00
Johannes Zellner b59776bf9b fail getting invite link or sending invite if invate was already used 2021-10-27 21:25:43 +02:00
Johannes Zellner 475795a107 Invite is now also separate 2021-10-27 19:58:06 +02:00
Johannes Zellner eee5b87a38 Implement new invite flow 2021-10-27 19:57:57 +02:00
Johannes Zellner e1bc2b7dfa Remove one superfluous div indentation 2021-10-27 19:41:17 +02:00
Johannes Zellner 94d654d7d0 Remove copy and paste error 2021-10-27 19:32:09 +02:00
Johannes Zellner 248116cc8a Hide password reset button for users from external ldap 2021-10-27 19:18:21 +02:00
Johannes Zellner 13d7381c62 Change password reset to have both link and email 2021-10-27 19:16:46 +02:00
Johannes Zellner 9a80049d36 Add two distinct password reset routes 2021-10-27 19:12:18 +02:00
Johannes Zellner 4ae90fc2da Update translations 2021-10-27 17:19:54 +02:00
Johannes Zellner 1d13fbaff1 fallbackEmail is not required in user edit anymore 2021-10-27 17:19:54 +02:00
Girish Ramakrishnan 6c5995b6ac app update: show danger button for unstable releases 2021-10-26 21:58:07 -07:00
Johannes Zellner d952b4485d Allow to specify fallbackEmail during user creation 2021-10-26 23:39:15 +02:00
Johannes Zellner daf212468f fallbackEmail is now independent from email 2021-10-26 22:50:02 +02:00
Girish Ramakrishnan 2f510c2625 capitalize sql keywords 2021-10-26 11:19:30 -07:00
Girish Ramakrishnan 7a977fa76b 7.0.2 changes 2021-10-26 11:17:57 -07:00
Girish Ramakrishnan f5e025c213 mail: mailbox listing does not return pop3 status 2021-10-26 11:11:07 -07:00
Girish Ramakrishnan 971b73f853 move the bind inside 2021-10-26 11:03:54 -07:00
Girish Ramakrishnan 0103b21724 bump default backup memory limit to 800 2021-10-26 11:03:54 -07:00
Girish Ramakrishnan 789438690d change minimum backup memory limit to 800 2021-10-26 11:03:40 -07:00
Johannes Zellner cef5c1e78c Use normal bind() 2021-10-26 18:47:51 +02:00
Johannes Zellner 50ff6b99e0 More external ldap fixes after the test tests the correct thing 2021-10-26 18:04:25 +02:00
Johannes Zellner 26dbd50cf2 Ensure we don't crash if mount status does not include some strings 2021-10-26 14:54:56 +02:00
Johannes Zellner 84884b969e Fix external ldap bind
See "Losing context" https://masteringjs.io/tutorials/node/promisify
2021-10-26 11:55:58 +02:00
Johannes Zellner 3ec02c68e2 Do not disable but hide app related doc links if not applicable 2021-10-25 21:22:39 +02:00
Girish Ramakrishnan 62174c5328 proxyauth: only log failed requests by default 2021-10-25 09:41:12 -07:00
Johannes Zellner 470b876865 Add Russian translation 2021-10-25 13:08:43 +02:00
Johannes Zellner 877bfe2df2 Update translations 2021-10-25 13:08:32 +02:00
Girish Ramakrishnan 11dfcb4c8f email: import link has changed 2021-10-24 21:20:33 -07:00
Girish Ramakrishnan 716951a3f1 dkim: ignore any spurious errors
in one of our cloudrons, we had a random dangling symlink in that directory
2021-10-22 17:26:12 -07:00
Girish Ramakrishnan fbf6fe22af 7.0.1 changes 2021-10-22 16:39:42 -07:00
Girish Ramakrishnan b18c4d3426 migration: wellKnown is {} or NULL 2021-10-22 16:29:32 -07:00
Girish Ramakrishnan 26a993abe7 Ubuntu 16 is unsupported 2021-10-22 16:09:43 -07:00
Girish Ramakrishnan 010024dfd7 apps: make downloadFile async 2021-10-21 15:25:15 -07:00
Girish Ramakrishnan 2e3070a5c6 apps: make uploadFile async 2021-10-21 15:15:39 -07:00
Girish Ramakrishnan fbaee89c7b apps: clear timeout for upload and download routes 2021-10-21 10:44:17 -07:00
Johannes Zellner a396237832 Do not break lines in the middle of the log file path 2021-10-21 17:34:07 +02:00
Girish Ramakrishnan 5236ccb61a mail: hide the filemanager button 2021-10-20 17:41:19 -07:00
Girish Ramakrishnan d2de2039d5 pretend to be busy for 3 seconds 2021-10-20 14:09:40 -07:00
Johannes Zellner 7ca757bb85 Show an indicator for operators of apps 2021-10-20 09:29:14 +02:00
Girish Ramakrishnan 9e14fe449a ghost: Save -> Set Password 2021-10-19 20:09:00 -07:00
Girish Ramakrishnan 7edb5c486a users: password reset changes 2021-10-19 19:36:23 -07:00
Girish Ramakrishnan f2cf630aa2 Give it 3 seconds 2021-10-19 19:14:34 -07:00
Girish Ramakrishnan e0edfbf621 services: better status for sftp and turn 2021-10-19 16:02:18 -07:00
Girish Ramakrishnan a2b4d945a2 services: fix status color in recovery mode 2021-10-19 15:51:44 -07:00
Girish Ramakrishnan 8cda287838 fix crash when there are multiple quick oom events 2021-10-19 12:25:25 -07:00
Girish Ramakrishnan 9b8e16f990 better crontab paste 2021-10-19 11:21:09 -07:00
Girish Ramakrishnan e2ff07b388 Give eventlog time a bit more space 2021-10-19 09:56:38 -07:00
Girish Ramakrishnan e9a9578735 app: various eventlog fixes 2021-10-19 09:49:53 -07:00
Johannes Zellner 9e483a317d Do not duplicate app descriptor in app eventlog 2021-10-19 16:23:44 +02:00
Johannes Zellner dceb748fbe Fix typo 2021-10-19 16:07:59 +02:00
Johannes Zellner a06bc276c1 Align buttons in support view to be consistent
The email verification is like the appstore login button essential and
thus centered for focus.
2021-10-19 15:24:42 +02:00
Johannes Zellner f3dcf10ace Improve loading state in support view 2021-10-19 15:14:52 +02:00
Girish Ramakrishnan c0be926d99 move the email verification section to the top 2021-10-18 21:48:54 -07:00
Girish Ramakrishnan a5ed4ac6e9 Add link to forum 2021-10-18 18:13:44 -07:00
Girish Ramakrishnan 4b87d754fb grammar 2021-10-18 11:04:55 -07:00
Johannes Zellner 80f83ef195 Next release is 7.0.0 2021-10-18 19:00:31 +02:00
Girish Ramakrishnan d164a428a8 add to features 2021-10-18 09:05:59 -07:00
Girish Ramakrishnan 22e4d956fb mail: add option to force from address for relays 2021-10-16 22:30:28 -07:00
Girish Ramakrishnan ec56b30cdc mail: add option to force from address for relays 2021-10-16 21:47:28 -07:00
Girish Ramakrishnan 273a833935 mail: chmod the key file, so we can make the config dir readonly 2021-10-16 16:36:53 -07:00
Girish Ramakrishnan da21e1ffd1 Fix typo in dkim path 2021-10-16 16:28:17 -07:00
Girish Ramakrishnan 4f9975de1b mail: set loglevel in recovery mode 2021-10-16 16:07:35 -07:00
Girish Ramakrishnan 00d6dfbacc Bump the year in license 2021-10-16 15:03:26 -07:00
Girish Ramakrishnan 3988d0d05f mail: add duplication detection for lists 2021-10-15 21:52:16 -07:00
Girish Ramakrishnan e9edfbc1e6 req.body -> data 2021-10-15 11:20:09 -07:00
Johannes Zellner c81f40dd8c Ensure mail data dir is still created 2021-10-15 15:02:54 +02:00
Girish Ramakrishnan c775ec9b9c mail: auto-expunge junk folder (60 days) 2021-10-14 11:26:57 -07:00
Girish Ramakrishnan 98c6d99cad mail: enable vacation-seconds sieve extension 2021-10-14 09:31:57 -07:00
Girish Ramakrishnan 13197a47a9 mail: allow configuring dnsbl zones 2021-10-13 14:53:20 -07:00
Girish Ramakrishnan ea746b7741 mail: configure acl 2021-10-13 14:53:05 -07:00
Girish Ramakrishnan 419b58b300 mail: implement event log spam filter 2021-10-12 18:42:38 -07:00
Girish Ramakrishnan fb77bb0b37 mail: add spam event type 2021-10-12 18:28:30 -07:00
Girish Ramakrishnan 272c77e49d mail: better eventlog schema 2021-10-12 17:11:55 -07:00
Girish Ramakrishnan afdac02ab8 mail: fix the folder structure 2021-10-12 12:30:19 -07:00
Girish Ramakrishnan 405eae4495 Fix installation detection 2021-10-12 10:26:58 -07:00
Johannes Zellner 46942efe07 Hide impersonate button for own user 2021-10-12 19:00:13 +02:00
Johannes Zellner 26e4f05adb Send subscription status for all users 2021-10-12 18:50:40 +02:00
Johannes Zellner 9545403e00 show subscription expired badge for all users 2021-10-12 18:50:23 +02:00
Girish Ramakrishnan 98949d6360 dkim: typo when importing private key 2021-10-12 09:38:33 -07:00
Johannes Zellner 8c9c19d07d Fixup appstore route related tests 2021-10-12 14:55:30 +02:00
Girish Ramakrishnan 004a264993 mail: dkim key update 2021-10-11 22:56:34 -07:00
Girish Ramakrishnan dc8ec9dcd8 mail: move dkim keys into the database 2021-10-11 20:30:42 -07:00
Girish Ramakrishnan a63e04359c Fix tests 2021-10-11 20:29:50 -07:00
Girish Ramakrishnan 4fda00e56c mail: update locations 2021-10-11 18:14:22 -07:00
Girish Ramakrishnan ca9b4ba230 add to changes 2021-10-11 15:44:34 -07:00
Girish Ramakrishnan b9a11f9c31 filemanager: fix crash in extract 2021-10-11 15:34:11 -07:00
Girish Ramakrishnan ca252e80d6 Fix usage of await 2021-10-11 10:29:46 -07:00
Girish Ramakrishnan 8e8d2e0182 Update docker to 20.10.7 2021-10-11 10:24:08 -07:00
Johannes Zellner d1a7172895 Add remount route for mountlike backup storages 2021-10-11 18:12:11 +02:00
Johannes Zellner b089a1f580 Add remount button for mountlike backup configs 2021-10-11 18:07:31 +02:00
Johannes Zellner 332158baaa Update translations 2021-10-11 16:24:21 +02:00
Johannes Zellner 80f860493a Add volume remount button 2021-10-11 16:24:11 +02:00
Johannes Zellner 9eed3af8b6 add volume remount 2021-10-11 16:22:56 +02:00
Girish Ramakrishnan f01764617c mail: fix rebuild
also fixes dangerous code that downloads mail backup if infra version is 'none'
2021-10-09 08:15:10 -07:00
Girish Ramakrishnan 67918900bf mail: rework the eventlog 2021-10-08 20:34:06 -07:00
Girish Ramakrishnan 54bcfe92b9 recvmail: inject POP3 port 2021-10-08 15:24:38 -07:00
Girish Ramakrishnan 000db4e33d mail: add flag to enable/disable pop3 access per mailbox 2021-10-08 10:43:17 -07:00
Girish Ramakrishnan 0f4e71d478 mailbox: add checkbox for pop3 2021-10-08 10:22:18 -07:00
Girish Ramakrishnan 9414041ba8 ldap: lookup by addon id and not service id 2021-10-08 09:59:44 -07:00
Girish Ramakrishnan f17e3b3a62 mail: export pop3 port 2021-10-07 22:06:26 -07:00
Girish Ramakrishnan 92c712ea75 ldap: use service ids when auth'ing email 2021-10-07 21:32:22 -07:00
Girish Ramakrishnan 355a4df65f update translations 2021-10-07 09:13:15 -07:00
Johannes Zellner e13c5c8e1a Do not duplicate sshd_config file path 2021-10-07 17:17:45 +02:00
Johannes Zellner 776c82ccae Show backend error if remote SSH cannot be enabled 2021-10-07 17:16:27 +02:00
Johannes Zellner 7f0035a823 $scope.error() is long gone 2021-10-07 17:10:20 +02:00
Johannes Zellner 544825f344 Ensure root login is enabled for enabling remote support 2021-10-07 17:04:20 +02:00
Girish Ramakrishnan b642bc98a5 ensure fallback certificates of all domains
https://forum.cloudron.io/topic/5683/data-argument-must-be-of-type-received-null-error-during-restore-process
2021-10-06 13:34:06 -07:00
Girish Ramakrishnan da2f561257 add note in functions used in migrations 2021-10-06 13:09:53 -07:00
Girish Ramakrishnan 4a9d074b50 Use for..of instead of forEach for clarity 2021-10-06 13:01:12 -07:00
Girish Ramakrishnan 93636a7f3a apps: fix log streaming 2021-10-04 10:08:11 -07:00
Girish Ramakrishnan 671e0d1e6f recvmail: check for active mailbox 2021-10-03 23:59:06 -07:00
Girish Ramakrishnan bcd6bdcd9b inbox name is required when inbox is enabled 2021-10-03 23:49:12 -07:00
Girish Ramakrishnan 1743368069 app: clear mailbox fields when sendmail is removed with an update 2021-10-03 23:38:12 -07:00
Girish Ramakrishnan 7b973f88e8 app: add recvmail section
part of cloudron/box#804
2021-10-03 23:24:32 -07:00
Girish Ramakrishnan a3fc5f226a make recvmail work
unlike sendmail, recvmail is always optional. this is the case because
the cloudron may not receive emails at all, so app always has to be
prepared for it.

part of #804
2021-10-02 03:11:47 -07:00
Girish Ramakrishnan aed84a6ac9 Fix postgresql import issue with long table names 2021-10-01 16:24:38 -07:00
Girish Ramakrishnan e31cf4cbfe do not wait for container in recovery mode 2021-10-01 14:38:47 -07:00
Girish Ramakrishnan 0c48159244 make it bold 2021-10-01 14:28:09 -07:00
Girish Ramakrishnan 08e7b0946a services: add recoveryMode checkbox 2021-10-01 14:24:09 -07:00
Girish Ramakrishnan 6a3cec3de8 services: add recoveryMode 2021-10-01 14:01:30 -07:00
Girish Ramakrishnan 54731392ff cannot disable sendmail if not optional 2021-10-01 11:20:13 -07:00
Girish Ramakrishnan 54668c92ba remove asserts when sendmail disabled 2021-10-01 11:16:49 -07:00
Girish Ramakrishnan 7a2b00cfa9 hasMailAddon is really just sendmail 2021-10-01 09:37:42 -07:00
Girish Ramakrishnan 1483dff018 make getLogs async 2021-10-01 09:23:25 -07:00
Girish Ramakrishnan b34d642490 get rid of debugApp 2021-10-01 09:20:19 -07:00
Johannes Zellner 885ea259d7 Set inviteToken on user creation 2021-10-01 14:52:58 +02:00
Johannes Zellner 1fada45e4c Either show invite or passwort reset 2021-10-01 14:36:50 +02:00
Johannes Zellner 4ce21f643e send invite status via user rest api 2021-10-01 14:32:37 +02:00
Johannes Zellner f07978cf08 account setup uses an inviteToken now 2021-10-01 12:27:59 +02:00
Johannes Zellner cb31e5ae8b Separate invite and password reset token 2021-10-01 12:27:22 +02:00
Johannes Zellner c7b668b3a4 remove unused require 2021-10-01 11:55:35 +02:00
Girish Ramakrishnan e9b24f7313 Show any last backup error
part of cloudron/box#797
2021-09-30 14:00:46 -07:00
Girish Ramakrishnan b27d439834 eventlog: use appName 2021-09-30 11:48:13 -07:00
Girish Ramakrishnan ede4da931c Add app backup eventlog 2021-09-30 11:44:37 -07:00
Girish Ramakrishnan 092b55d6ca apps: add backup start and finish events
these can then be used by the UI to show errors

fixes #797
2021-09-30 11:44:11 -07:00
Girish Ramakrishnan b0bdfbd870 apps: onFinished handler not called across restarts
if box code restarts in the middle of a apptask, the onFinished handlers
are not called for data migration and update. rework the code to hook
the onFinished handlers when the task completes and not where the task
is started.
2021-09-30 10:54:47 -07:00
Girish Ramakrishnan 445c83c8b9 make auditsource a class
this allows us to use AuditSource for the class and auditSource for
the instances!
2021-09-30 10:13:36 -07:00
Girish Ramakrishnan 339fdfbea1 schema: add missing args to tasks table 2021-09-30 09:01:43 -07:00
Johannes Zellner 843bbbbe58 Add email eventlog translation 2021-09-30 14:49:11 +02:00
Johannes Zellner e0fcc8ae4b Move email eventlog to separate view 2021-09-30 14:35:06 +02:00
Johannes Zellner 6bcef05e2a Fixup user route tests 2021-09-30 13:05:18 +02:00
Girish Ramakrishnan 679b813a7a give hint download has started 2021-09-29 23:36:54 -07:00
Girish Ramakrishnan 653496f96f import: validate and create transient mount point
fixes #788
2021-09-29 23:30:16 -07:00
Girish Ramakrishnan 9729d4adb8 backups: move hardcoded mountPoint to backend 2021-09-29 22:40:58 -07:00
Girish Ramakrishnan 6a3459e514 hardcode mountPoint in the backend instead 2021-09-29 22:35:13 -07:00
Girish Ramakrishnan ae4a091261 pass debug for safe call 2021-09-29 20:15:54 -07:00
Girish Ramakrishnan 6c580646f3 better translation for volume name 2021-09-29 19:47:53 -07:00
Girish Ramakrishnan d43209e655 autoconfig: add pop3 as protocol 2021-09-29 19:35:45 -07:00
Girish Ramakrishnan b57d50d38c remove HOMEPATH and USERPROFILE fallbacks
probably from a time when I had a mac
2021-09-29 19:00:59 -07:00
Girish Ramakrishnan 73315a42fe setup: fix journalctl configuration
/var/log/journal/*/system.journal does not exist on some systems

https://forum.cloudron.io/topic/4068/installation-failed-on-20-04-server
https://forum.cloudron.io/topic/5731/time4vps-installation-error
2021-09-28 19:21:16 -07:00
Girish Ramakrishnan 3bcd32c56d restore: mount all volumes before restoring apps
fixes #786
2021-09-28 11:51:01 -07:00
Girish Ramakrishnan d79206f978 mounts: volume -> mounts
this code is shared by volume code and backup code
2021-09-28 11:44:09 -07:00
Johannes Zellner e00671d697 Make cron patterns translatable 2021-09-28 20:40:36 +02:00
Girish Ramakrishnan 13644624df add crontab tests 2021-09-28 11:08:10 -07:00
Johannes Zellner ca0ac18a62 Add common cron pattern dropdown 2021-09-28 19:58:41 +02:00
Johannes Zellner fd4ada4f4d Add text-monospace class and apply it to cron, csp and robots inputs 2021-09-28 19:31:52 +02:00
Girish Ramakrishnan feea08adee cron: add default text 2021-09-28 10:21:51 -07:00
Johannes Zellner 93e003b31e Adjust card min-height to fit for the added cron tab 2021-09-28 18:04:29 +02:00
Johannes Zellner ab54721c04 Ensure dropdown a-tags are not affected 2021-09-28 17:51:50 +02:00
Girish Ramakrishnan b408b7ff35 cron -> crontab 2021-09-27 21:42:01 -07:00
Girish Ramakrishnan 74ce00d94d cron -> crontab 2021-09-27 21:41:41 -07:00
Girish Ramakrishnan b86d5ea0ea apps: add crontab
crontab is a text field, so we can have comments

part of #793
2021-09-27 21:33:00 -07:00
Girish Ramakrishnan ce323ca60a app: add cron section
part of cloudron/box#793
2021-09-27 21:19:31 -07:00
Johannes Zellner e1801b7a99 Make filesystem header a link if it is an app 2021-09-27 21:18:22 +02:00
Girish Ramakrishnan 6a28961dde filemanager: change button color of chown and rename 2021-09-27 11:43:56 -07:00
Girish Ramakrishnan 0d6abb9850 filebrowser: add mail restart button 2021-09-27 11:42:14 -07:00
Girish Ramakrishnan 04ff8dab1b Fix progress message 2021-09-27 11:17:10 -07:00
Girish Ramakrishnan 8c3e369599 upcloud: add object storage integration 2021-09-27 10:47:22 -07:00
Girish Ramakrishnan fac48aa977 upcloud: add object storage integration 2021-09-27 10:05:38 -07:00
Johannes Zellner c568c142c0 Remove unused require 2021-09-27 13:07:11 +02:00
Girish Ramakrishnan d390495608 provision: download mail backup during restore 2021-09-26 22:55:23 -07:00
Girish Ramakrishnan 7ea9252059 services: simplify startup logic 2021-09-26 22:48:14 -07:00
Girish Ramakrishnan 0415262305 backupcleaner: fix crash 2021-09-26 21:59:48 -07:00
Girish Ramakrishnan ad3dbe8daa mail: keep mail backups separately from box backups
part of #717
2021-09-26 21:47:24 -07:00
Girish Ramakrishnan 184fc70e97 pass debug for background promises 2021-09-26 21:24:37 -07:00
Girish Ramakrishnan 743597f91e backuptask: better debugs 2021-09-26 18:45:28 -07:00
Girish Ramakrishnan 90482f0263 use realpath to resolve links 2021-09-26 18:36:33 -07:00
Girish Ramakrishnan 9584990d7a remove old migration code 2021-09-26 18:10:39 -07:00
Girish Ramakrishnan 8255623874 mail: mount mail data directory into sftp container
fixes #794
2021-09-26 13:47:45 -07:00
Girish Ramakrishnan 3c1b01a857 mail: expose maildata via filemanager
part of cloudron/box#794
2021-09-26 12:51:37 -07:00
Girish Ramakrishnan d4edd771b5 sftp: prefix the id with app- and volume-
this helps the backend identify the type of mount
2021-09-25 23:35:44 -07:00
Girish Ramakrishnan 8553b57982 apptask: fix crash in configure 2021-09-25 21:39:54 -07:00
Girish Ramakrishnan 28f7fec44a apptask: remove debugApp 2021-09-25 21:39:54 -07:00
Girish Ramakrishnan 54c6f33e5f Fix broken invitation link 2021-09-25 17:36:56 -07:00
Girish Ramakrishnan 4523dd69c0 sftp: refactor 2021-09-25 17:12:38 -07:00
Girish Ramakrishnan ddcafdec58 remove obsolete comment 2021-09-25 17:02:22 -07:00
Girish Ramakrishnan f7d3f611cd filemanager: re-order columns 2021-09-24 10:51:34 -07:00
Girish Ramakrishnan 84b45aad46 eventlog: service events 2021-09-24 10:31:16 -07:00
Girish Ramakrishnan d90beb18d4 eventlog: add service rebuild/restart/configure events 2021-09-24 10:22:45 -07:00
Johannes Zellner d1fa514499 Only call the API if values have changed for operators or access controls 2021-09-24 13:19:07 +02:00
Girish Ramakrishnan 05e8339555 Fix typos in cert renewal 2021-09-23 17:54:54 -07:00
Girish Ramakrishnan 3090307c1d tasks: remove superfluous update code 2021-09-23 17:44:41 -07:00
Girish Ramakrishnan 8644a63919 better debug 2021-09-23 17:38:55 -07:00
Girish Ramakrishnan b135aec525 pass debug argument to background safe() calls 2021-09-23 17:28:22 -07:00
Girish Ramakrishnan 371eea50bf eventlog: operator change 2021-09-23 09:29:29 -07:00
Girish Ramakrishnan 1aa96f7f76 demo: do not send login notification 2021-09-23 09:13:07 -07:00
Johannes Zellner d32f133d98 Show 30 events by default 2021-09-23 16:31:39 +02:00
Johannes Zellner 5d7832bec1 Add simple eventlog pagination in apps view 2021-09-23 12:09:05 +02:00
Johannes Zellner 3a55daed2f Improve appstore listing speed 2021-09-23 01:14:55 +02:00
Johannes Zellner 195c5ab21a Fetch appstore listing as soon as possible 2021-09-23 00:33:40 +02:00
Johannes Zellner 74045b7de1 Remove toplevel source column in apps eventlog 2021-09-22 23:29:32 +02:00
Johannes Zellner 1c1a4d8af6 Remove test usage of update indicator 2021-09-22 23:22:03 +02:00
Johannes Zellner 49280f616a Let cog overlay sso indicator for operators 2021-09-22 22:51:47 +02:00
Johannes Zellner db3df9a3ea Move sftp login details to help dialog 2021-09-22 22:28:05 +02:00
Johannes Zellner ad7afe8646 Move sso indicator to the bottom and always show for non-admins 2021-09-22 21:59:37 +02:00
Girish Ramakrishnan c4a3240c22 operator: hide Email section
operator cannot list domains
2021-09-22 12:46:59 -07:00
Girish Ramakrishnan 6fbf7890cc operator: mailbox route has to be protected
this is because operator cannot list domains
2021-09-22 12:45:13 -07:00
Girish Ramakrishnan c37830697a move the sftp description to operator section 2021-09-22 10:58:12 -07:00
Girish Ramakrishnan dff2275a9b add a flag to disable ocsp globally
fixes #796
2021-09-22 09:13:16 -07:00
Girish Ramakrishnan 81fa792198 mail: port 465 (TLS) note 2021-09-22 08:48:45 -07:00
Johannes Zellner 5b70c055cc Fixup accessLevel tests 2021-09-22 12:07:31 +02:00
Johannes Zellner efa364414f Fix viable app tests and disable currently broken ones 2021-09-22 11:37:27 +02:00
Girish Ramakrishnan 5883857e8c sftp: remove requireAdmin setting. deprecated with operators 2021-09-21 22:43:04 -07:00
Girish Ramakrishnan 155baa346b sftp: remove the requireAdmin setting now that we have operators 2021-09-21 22:39:11 -07:00
Girish Ramakrishnan 629908eb4c operator: add a limits route to determine max app resource limits 2021-09-21 22:29:19 -07:00
Girish Ramakrishnan 26e9589842 operator: use limits route to get the max memory app can use 2021-09-21 22:29:05 -07:00
Girish Ramakrishnan b493355cbc operator: use the new app task status route 2021-09-21 22:19:34 -07:00
Girish Ramakrishnan 214540ebfa operator: add app task status route 2021-09-21 22:19:20 -07:00
Girish Ramakrishnan 4062872299 operator: use app graphs route 2021-09-21 21:52:59 -07:00
Girish Ramakrishnan d7bd3dfe7c operator: add graphs route 2021-09-21 21:50:33 -07:00
Girish Ramakrishnan 4d9af6651a operator: only show clone and config download button if cloudron admin 2021-09-21 20:01:16 -07:00
Girish Ramakrishnan 0857378801 operator: add app update checker route 2021-09-21 19:58:38 -07:00
Girish Ramakrishnan a8b50642f2 operator: use new app update check route 2021-09-21 19:55:48 -07:00
Girish Ramakrishnan f8ed17dd58 Use the new app eventlog route 2021-09-21 19:46:18 -07:00
Girish Ramakrishnan 82d4fdf24e operator: add route to get app event log
we cannot go via /cloudron/eventlog since that requires admin
2021-09-21 19:45:29 -07:00
Girish Ramakrishnan 06e5f9baa1 operators: make the terminal work 2021-09-21 18:27:54 -07:00
Girish Ramakrishnan aecba53de5 add operators UI 2021-09-21 18:20:18 -07:00
Girish Ramakrishnan 6c9b8c8fa8 apps: fix various operators issues
part of #791
2021-09-21 18:20:03 -07:00
Girish Ramakrishnan fabd0323e1 Add missing await 2021-09-21 17:47:42 -07:00
Girish Ramakrishnan bb2ad0e986 Implement operator role for apps
There are two main use cases:
* A consultant/contractor/external developer is given access to just an app.
* A "service" personnel (say upstream app author) is to be given access to single app
for debugging.

Since, this is an "app admin", they are also given access to apps to be consistent with
the idea that Cloudron admin has access to all apps.

part of #791
2021-09-21 12:30:02 -07:00
Girish Ramakrishnan f44fa2cf47 apps: hasAccessTo -> canAccess 2021-09-21 10:13:06 -07:00
Johannes Zellner 737412653f Fix renamed function call 2021-09-21 18:58:18 +02:00
Girish Ramakrishnan 0cfc3e03bb Use concrete resource name instead of generic "resource" 2021-09-20 22:42:34 -07:00
Girish Ramakrishnan d1e8fded65 mail: expose 465 for mail submission
Port 465 is implicit TLS. rfc8314 is now pushing this as a standard
and some mail clients like outlook have already taken this to heart.

Note that this port is sometimes confused with SMTPS. Unlike SMTPS,
this is being used for "submissions" (by a client) as opposed to
server transfer protocol.

This is more secure than port 587+STARTTLS. We reject credentials
on insecure connections but it's too late.

See also:

https://www.fastmail.help/hc/en-us/articles/360058753834
https://www.agwa.name/blog/post/starttls_considered_harmful
https://linuxguideandhints.com/misc/port465.html
2021-09-20 15:42:16 -07:00
Girish Ramakrishnan ee62e9c2e7 cloudflare: also show warning for SFTP access 2021-09-20 11:42:55 -07:00
Girish Ramakrishnan d4313fd6e5 show cloudflare port warning
fixes cloudron/box#802
2021-09-20 11:30:27 -07:00
Girish Ramakrishnan 398d9b0343 show manual warning for noop also 2021-09-20 11:13:29 -07:00
Girish Ramakrishnan 867d1dfcbe manual dns: show setup warning for bare domains as well 2021-09-20 11:06:28 -07:00
Girish Ramakrishnan d853598c5f clone: linode warning is obsolete 2021-09-20 10:52:20 -07:00
Girish Ramakrishnan 2a667cb985 attach debug object for background safe() 2021-09-20 10:36:49 -07:00
Girish Ramakrishnan a36c51483c no need to re-throw 2021-09-20 10:36:46 -07:00
Girish Ramakrishnan e2fc785e80 rename getServiceIds to listServices 2021-09-20 09:15:49 -07:00
Johannes Zellner 5a1a439224 Adjust comment about getAll 2021-09-20 18:04:01 +02:00
Johannes Zellner 212d025579 Do not send new login notification if we have ghost user login 2021-09-20 17:56:37 +02:00
Johannes Zellner f6a74731ba Create a separate section in the user edit dialog to reset 2fa 2021-09-20 17:25:58 +02:00
Johannes Zellner 7c70b9050d Fixup ghost tests 2021-09-20 14:59:26 +02:00
Johannes Zellner ca2cc0b86c Make cloudron-support --owner-login use the settings table 2021-09-20 13:20:41 +02:00
Johannes Zellner c6c62de68a Move ghosts into settings table 2021-09-20 13:05:42 +02:00
Girish Ramakrishnan f66af19458 page number starts from 1 2021-09-19 18:36:08 -07:00
Girish Ramakrishnan 50c68cd499 notifications: better oom message for redis
fixes #795
2021-09-19 17:34:41 -07:00
Girish Ramakrishnan 05b4f96854 eslint: bump ecmaVersion
we can now use the optional chaining operator ?. that is available
in node 14
2021-09-19 17:32:01 -07:00
Girish Ramakrishnan 8c66ec5d18 tokens: ID_CLI is never used 2021-09-17 15:21:56 -07:00
Girish Ramakrishnan 66a907ef48 Logout users without 2FA when mandatory 2fa is enabled
Fixes #803
2021-09-17 14:52:24 -07:00
Girish Ramakrishnan e8aaad976b backups: make test config funcs return error 2021-09-17 10:14:26 -07:00
Girish Ramakrishnan 2554c47632 add missing apps.delPortBinding
this got lost in async/db translation
2021-09-17 09:52:21 -07:00
Girish Ramakrishnan c5794b5ecd get rid of all the NOOP_CALLBACKs 2021-09-17 09:40:26 -07:00
Johannes Zellner de2d200c89 Add ghost feature translation 2021-09-17 16:08:13 +02:00
Johannes Zellner b3fe2a4b84 Set correct default ghost expiration 2021-09-17 16:08:03 +02:00
Johannes Zellner 8057b2454c Add initial ghost creation UI 2021-09-17 15:55:42 +02:00
Johannes Zellner 2ea5786fcc Fix setGhost api usage 2021-09-17 15:52:52 +02:00
Johannes Zellner f75b0ebff9 Add set ghost route 2021-09-17 12:52:41 +02:00
Johannes Zellner 8fde4e959c Support ghost password expiration in ghost file 2021-09-17 11:48:56 +02:00
Girish Ramakrishnan ac59a7dcc2 disable col stats in test mode (mysql 5.7) or non-ubuntu 20 2021-09-16 17:25:09 -07:00
Girish Ramakrishnan 9a2ed4f2c8 apptask: asyncify 2021-09-16 17:25:05 -07:00
Girish Ramakrishnan b5539120f1 tests: cache dhparams in /tmp 2021-09-16 16:39:13 -07:00
Johannes Zellner a9b257c9ca Move invite and reset button to indicate a confirm dialog 2021-09-16 21:28:56 +02:00
Johannes Zellner d9e93f9110 Further dark mode fixes 2021-09-16 21:27:19 +02:00
Johannes Zellner fe2856195e Bring the invite checkbox back, only now disabled by default 2021-09-16 20:17:37 +02:00
Johannes Zellner aca618fb1e further darken disabled buttons in dark mode 2021-09-16 20:17:17 +02:00
Johannes Zellner 30456d68a5 Remove password input on add user dialog again 2021-09-16 19:59:18 +02:00
Johannes Zellner 7277727307 Fixup some of app route tests 2021-09-16 17:20:19 +02:00
Johannes Zellner f13e641af4 Also generate dhparams in test to let the platform finish startup 2021-09-16 17:19:59 +02:00
Johannes Zellner da23bae09e return error if purchase fails 2021-09-16 17:19:38 +02:00
Johannes Zellner 96ddf076eb Ensure all invite and reset bits are translated 2021-09-16 16:03:07 +02:00
Johannes Zellner 97c8c2460e Add invitation logic back just like password reset 2021-09-16 15:46:26 +02:00
Johannes Zellner 8b15dbdd5b Create invite route is gone 2021-09-16 15:43:27 +02:00
Johannes Zellner 9da18d3acb Fixup user tests 2021-09-16 15:38:06 +02:00
Johannes Zellner d92f4c2d2b Ensure a whole test run succeeds for me on archlinux 2021-09-16 15:20:26 +02:00
Johannes Zellner 6785253377 Invitation is now also just a single route like password reset 2021-09-16 15:03:48 +02:00
Johannes Zellner ea3726f88b Plain password reset for a user 2021-09-16 14:56:24 +02:00
Johannes Zellner 074ce574dd Return password reset link on reset request route 2021-09-16 14:34:56 +02:00
Johannes Zellner 14478919e6 Move 2fa reset into user edit dialog 2021-09-16 13:21:55 +02:00
Johannes Zellner ecd35bd08d Fixup 2fa reset route 2021-09-16 13:18:22 +02:00
Johannes Zellner e0d7238a10 Add pre-setup password error reporting 2021-09-16 09:05:40 +02:00
Johannes Zellner a6301d2b6c Add optional password field on usercreation 2021-09-16 09:01:46 +02:00
Johannes Zellner df864a8b6e Add missing safe() call 2021-09-16 08:40:01 +02:00
Girish Ramakrishnan 48eab7935c sftp: add missing safe() 2021-09-15 15:31:20 -07:00
Johannes Zellner 455fbf36e0 Fix darkmode for disabled input fields 2021-09-15 22:38:13 +02:00
Johannes Zellner 4080d111c1 We now map ldap users instead of ignoring them if usernames match 2021-09-15 11:44:39 +02:00
Girish Ramakrishnan a78178ec47 redact password immediately after verify 2021-09-14 10:36:14 -07:00
Girish Ramakrishnan d947be8683 Add to changes 2021-09-14 09:16:20 -07:00
Johannes Zellner bdd26c7d17 Add basic eventlog for apps in app view 2021-09-14 12:17:38 +02:00
Johannes Zellner 82ede09908 Move eventlog helpers to shared Client 2021-09-14 12:17:17 +02:00
Johannes Zellner be574d371f Enable sshfs/cifs/nfs in app import UI 2021-09-14 11:37:36 +02:00
Johannes Zellner 48056d7451 If we detect a local user with the same username as found on LDAP/AD we map it 2021-09-13 21:17:41 +02:00
Girish Ramakrishnan 2f0297d97e Use the debug argument 2021-09-13 11:29:55 -07:00
Johannes Zellner a0e85f5203 Require password for fallback email change 2021-09-13 14:10:09 +02:00
Girish Ramakrishnan cdf6988156 Update node to 14.17.6 2021-09-10 14:34:11 -07:00
Girish Ramakrishnan ae13fe60a7 make startBackupTask async 2021-09-10 12:10:10 -07:00
Girish Ramakrishnan 242fad137c update safetydance 2021-09-10 11:51:44 -07:00
Girish Ramakrishnan bb7eb6d50e database: remove callback support 2021-09-10 11:40:01 -07:00
Johannes Zellner 59cbac0171 Require password for fallback email change 2021-09-09 23:22:00 +02:00
Johannes Zellner d3d22f0878 Directly use users.verify() instead of another db lookup 2021-09-09 22:50:35 +02:00
Johannes Zellner f8d0438c06 Make password reset logic translatable 2021-09-09 22:31:00 +02:00
Johannes Zellner 04eb179899 Add password reset action to profile page 2021-09-09 22:24:35 +02:00
Johannes Zellner 2d5eb6fd62 Remove unused require 2021-09-09 22:15:12 +02:00
Johannes Zellner d4ffba86a6 Update xtermjs to 4.14 2021-09-09 21:53:55 +02:00
Girish Ramakrishnan fefd4abf33 Fix logger to log exceptions
this is similar to the fix in taskworker
2021-09-07 11:23:57 -07:00
Girish Ramakrishnan 7709e155e0 more async'ification 2021-09-07 11:21:06 -07:00
Girish Ramakrishnan e7f51d992f acme: getCertificate can be async now 2021-09-07 09:34:23 -07:00
Johannes Zellner 5a955429f1 Overlooked one more domains occasion 2021-09-06 09:46:27 +02:00
Johannes Zellner 350a42c202 Fix linter issue of reused variable name 2021-09-05 12:10:37 +02:00
Girish Ramakrishnan 6a6b60412d Fix location change 2021-09-03 13:12:47 -07:00
Girish Ramakrishnan 1df0c12d6f mail: fix location change 2021-09-03 12:57:10 -07:00
Girish Ramakrishnan e2cb0daec1 sysinfo: add missing return 2021-09-03 09:08:20 -07:00
Girish Ramakrishnan 949b2e2530 postgresql: bump shm size and disable parallel queries
https://forum.cloudron.io/topic/5604/nextcloud-take-very-long-time-to-respond/5
2021-09-03 08:02:06 -07:00
Girish Ramakrishnan 51d067cbe3 sysinfo: async'ify
in the process, provision, dyndns, mail, dns also got further asyncified
2021-09-02 16:19:46 -07:00
Girish Ramakrishnan 1856caf972 externalldap: async'ify
and make the tests work again
2021-09-01 21:33:27 -07:00
Girish Ramakrishnan 167eae5b81 Use safe instead of try/catch 2021-09-01 15:37:04 -07:00
Johannes Zellner 8d43015867 Asyncify some external ldap sync code 2021-09-01 14:47:43 +02:00
Girish Ramakrishnan b5d6588e3e updater: async'ify 2021-08-31 13:12:14 -07:00
Girish Ramakrishnan d225a687a5 Fix typo in updater logic 2021-08-31 11:16:58 -07:00
Girish Ramakrishnan ffc3c94d77 tests: add footer tests 2021-08-31 08:47:01 -07:00
Girish Ramakrishnan 6027397961 Add missing safe() 2021-08-31 08:37:16 -07:00
Girish Ramakrishnan c8c4ee898d scheduler: inspectByName -> inspect 2021-08-31 07:59:07 -07:00
Girish Ramakrishnan 66fcf92a24 wellknown: asyncify 2021-08-30 23:07:19 -07:00
Girish Ramakrishnan 22231a93c0 Ensure logs are flushed before crash 2021-08-30 22:01:34 -07:00
Girish Ramakrishnan 6754409ee2 Add missing safe() 2021-08-30 18:52:02 -07:00
Girish Ramakrishnan b1da86c97f rename variable to avoid shadowing 2021-08-30 15:30:50 -07:00
Girish Ramakrishnan ca4aeadddd prepareDashboardDomain: detect conflicts properly 2021-08-30 15:19:16 -07:00
Girish Ramakrishnan 6dfb328532 Add missing await 2021-08-30 14:00:50 -07:00
Girish Ramakrishnan 7d8cca0ed4 Fix typo 2021-08-30 11:42:46 -07:00
Girish Ramakrishnan 99d8c171b3 apps: return 404 when get returns null 2021-08-30 09:28:21 -07:00
Girish Ramakrishnan d2c2b8e680 Fix shell.sudo usage 2021-08-30 09:28:16 -07:00
Girish Ramakrishnan a5d41e33f9 Fix update route to use async 2021-08-27 09:30:52 -07:00
Girish Ramakrishnan 7413ccd22e Fix some more crashes 2021-08-26 21:29:40 -07:00
Girish Ramakrishnan f5c169f881 Fix service status 2021-08-26 21:18:20 -07:00
Girish Ramakrishnan 42774eac8c docker.js and services.js: async'ify 2021-08-26 18:23:31 -07:00
Johannes Zellner 200949d49f Only disable ticket form if email is not validated 2021-08-26 13:04:55 +02:00
Girish Ramakrishnan 1cc11fece8 Fix crash in renewCerts() 2021-08-25 15:52:05 -07:00
Girish Ramakrishnan fc1eabfae4 appstore: fix usage of getCloudronToken 2021-08-25 15:22:24 -07:00
Girish Ramakrishnan 041b5db58b Add changes 2021-08-25 14:35:12 -07:00
Girish Ramakrishnan 3912c18824 cloudron-setup: detect amd64 2021-08-25 13:20:12 -07:00
Johannes Zellner 97dbf0ee7b Hide ticket form if cloudron.io email is not yet verified 2021-08-25 18:36:46 +02:00
Johannes Zellner a1b4986060 Fix translation links to email 2021-08-25 14:11:42 +02:00
Girish Ramakrishnan 8d3790d890 Fix grammar 2021-08-24 09:38:51 -07:00
Girish Ramakrishnan 766357567a Add missing safe() 2021-08-23 15:44:23 -07:00
Girish Ramakrishnan 77f5cb183b merge appdb.js into apps.js 2021-08-23 15:35:38 -07:00
Girish Ramakrishnan b6f2d6d620 Make database.initialize async 2021-08-23 15:20:14 -07:00
Girish Ramakrishnan 1052889795 taskworkers can be async or take a callback 2021-08-23 15:20:14 -07:00
Johannes Zellner 3a0e882d33 Add missing safe() wrapper 2021-08-23 17:47:58 +02:00
Johannes Zellner bbc9d35d53 show indicator if appstore email is not yet verified 2021-08-23 17:37:59 +02:00
Girish Ramakrishnan 37c2b5d739 proxyauth: fix crash 2021-08-22 16:19:22 -07:00
Girish Ramakrishnan 62eb4ab90e Fix addon crash
getAddonConfigByName returns null now when not found
2021-08-22 15:41:42 -07:00
Girish Ramakrishnan 95af5ef138 mailer: fix crash 2021-08-22 09:52:01 -07:00
Johannes Zellner ba2475dc7e Some images like scaleway bare-metal on 20.04 explicitly require systemd-timesyncd 2021-08-22 17:22:47 +02:00
Girish Ramakrishnan 7ba3203625 users: getAll -> list 2021-08-20 11:31:10 -07:00
Girish Ramakrishnan dd16866e5a eventlog: getAll -> list 2021-08-20 11:27:35 -07:00
Girish Ramakrishnan aa6b845c9c make loginLocationsJson mediumtext
it seems we overflow atleast in the demo cloudron
TEXT – 64KB (65,535 characters)
MEDIUMTEXT – 16MB (16,777,215 characters)
2021-08-20 10:30:14 -07:00
Girish Ramakrishnan a4b5219706 more removal of unused functions 2021-08-20 09:11:38 -07:00
Girish Ramakrishnan 0d87a5d665 remove unused function 2021-08-20 09:02:16 -07:00
Girish Ramakrishnan ba3a93e648 remove unused function 2021-08-20 08:58:51 -07:00
Girish Ramakrishnan 0494bad90a make settings-test follow the new pattern 2021-08-20 08:58:00 -07:00
Girish Ramakrishnan c5fff756d1 move addon config db code to addonconfigs.js 2021-08-19 22:08:31 -07:00
Girish Ramakrishnan 411cc7daa1 merge settingsdb into settings code 2021-08-19 17:45:40 -07:00
Girish Ramakrishnan 4cd5137292 mailer: fix error handling
previous mailer code has no callback and thus no way to pass back errors.
now with asyncification it passes back the error
2021-08-19 12:40:53 -07:00
Girish Ramakrishnan ada7166bf8 translation: asyncify 2021-08-19 11:54:28 -07:00
Girish Ramakrishnan 03e22170da appstore and support: async'ify 2021-08-18 23:38:18 -07:00
Girish Ramakrishnan 200018a022 settings: async'ify
* directory config
* unstable app config
2021-08-18 15:46:08 -07:00
Girish Ramakrishnan 2d1f4ff281 settingsdb.getAll is gone 2021-08-18 15:33:49 -07:00
Girish Ramakrishnan 4671396889 settingsdb: merge blob get/set into settings.js 2021-08-18 15:31:07 -07:00
Girish Ramakrishnan 3806b3b3ff settings: initCache and list are now async 2021-08-18 13:59:57 -07:00
Girish Ramakrishnan fa9938f50a mailboxdb: merge into mail.js 2021-08-18 12:48:34 -07:00
Girish Ramakrishnan 98ef6dfae9 throw must create a new object 2021-08-17 15:20:30 -07:00
Girish Ramakrishnan 5dd6f85025 reverseproxy: async'ify 2021-08-17 14:34:55 -07:00
Girish Ramakrishnan 5bcf1bc47b merge domaindb.js into domains.js 2021-08-16 14:41:42 -07:00
Girish Ramakrishnan 74febcd30a make ldap tests pass 2021-08-13 16:55:39 -07:00
Girish Ramakrishnan beb1ab7c5b make users-test work 2021-08-13 14:52:57 -07:00
Girish Ramakrishnan a8760f6c2c tests: cleanup common variables 2021-08-13 11:34:05 -07:00
Girish Ramakrishnan aa981da43b tests: bump expiry of token 2021-08-13 10:23:27 -07:00
Girish Ramakrishnan 85e3e4b955 Accomodate redhat client
Patch from @jk at https://forum.cloudron.io/topic/4383/cannot-install-apps-from-docker-registry-because-authentication-fails
2021-08-13 09:36:06 -07:00
Girish Ramakrishnan ec0d64ac12 tests: complete common'ification of routes tests 2021-08-12 22:49:19 -07:00
Girish Ramakrishnan ac5b7f8093 tests: more common'ification 2021-08-12 17:20:57 -07:00
Johannes Zellner 5d918b0fad Set autofocus in clone modal 2021-08-12 09:59:56 +02:00
Girish Ramakrishnan 05576b5a91 6.4 changes 2021-08-11 22:25:17 -07:00
Girish Ramakrishnan c7017da770 Add 6.3.6 changes 2021-08-11 22:23:59 -07:00
Johannes Zellner ca10b2103a Update translation also fixes spanish invite email crash 2021-08-11 21:53:17 +02:00
Girish Ramakrishnan a76c4b9b56 remove debugs 2021-08-11 12:41:44 -07:00
Girish Ramakrishnan 6ac297bac5 password reset: show 2fa input 2021-08-11 12:28:54 -07:00
Girish Ramakrishnan 04d377d20d password reset: require and verify totpToken 2021-08-11 12:08:28 -07:00
Johannes Zellner 5b10cb63f4 sftp: update addon to fix symlink deletion 2021-08-11 09:32:30 +02:00
Girish Ramakrishnan 1e665b6323 Use the addresses of all available interfaces
See https://forum.cloudron.io/topic/5481/special-treatment-of-port-53-does-not-work-in-all-cases
2021-08-10 22:20:35 -07:00
Girish Ramakrishnan 458a758ea7 refresh config after appstore login
1. create new cloudron
2. appstore login
3. go to domains view. cannot add more than one domain because config.features is not refreshed.
2021-08-10 14:43:10 -07:00
Girish Ramakrishnan 6d7f9b10bd addUser now returns an id 2021-08-10 13:53:28 -07:00
Girish Ramakrishnan 79997d5529 users.add and users.createOwner only returns id now 2021-08-10 13:50:52 -07:00
Girish Ramakrishnan 1994ca1ac7 remove purpose field 2021-08-10 13:31:01 -07:00
Girish Ramakrishnan 2c13158265 appstore: remove purpose field 2021-08-10 13:30:51 -07:00
Girish Ramakrishnan 449220eca1 appAddonConfigs: change value to TEXT
since the value is used directly as an environment variable, we have to
allow up to max env var size (32767). Use TEXT which has a size of 64k
2021-08-09 13:40:23 -07:00
Girish Ramakrishnan 1a1f40988e enable all the tests in users-test.js 2021-08-06 23:14:06 -07:00
Johannes Zellner a6e79c243e Show correct/new app version info in updated finished notification 2021-07-31 14:17:51 +02:00
Girish Ramakrishnan fee38acc40 Fix crash when setting up user account 2021-07-31 04:39:10 -07:00
Girish Ramakrishnan e4ce1a9ad3 Fix crash 2021-07-30 11:33:17 -07:00
Johannes Zellner 47fe89a595 Show stopped apps with grayscale filter 2021-07-30 14:58:16 +02:00
Girish Ramakrishnan 41c11d50c0 remove m.identity_server
https://forum.cloudron.io/topic/5416/implement-well-known-matrix-client-endpoint/10
2021-07-29 14:37:20 -07:00
Girish Ramakrishnan c6c96fd51f remove the identity_server from response
https://forum.cloudron.io/topic/5416/implement-well-known-matrix-client-endpoint/10
2021-07-29 14:36:30 -07:00
Johannes Zellner 768b9af1f9 Fix async usage 2021-07-29 22:21:18 +02:00
Johannes Zellner 635c5f7073 For some reason using df with regular promises breaks and calls catch without error 2021-07-29 22:21:18 +02:00
Girish Ramakrishnan 1273f0a3a4 add matrix client migration 2021-07-29 12:20:20 -07:00
Girish Ramakrishnan 205dab02be wellknown: serve up matrix/client 2021-07-29 12:05:21 -07:00
Girish Ramakrishnan 060737b0d5 well-known: set matrix/client 2021-07-29 11:59:16 -07:00
Johannes Zellner e3555236d4 Firefox does not like color hex codes in inline-svg 2021-07-29 18:52:01 +02:00
Johannes Zellner f11cc7389d owner may be null even without error 2021-07-29 17:08:01 +02:00
Johannes Zellner d93793eb81 Ensure setup also has a darkmode background 2021-07-29 12:17:44 +02:00
Johannes Zellner 8e42423f06 When using await on superagent we should not call end()
https://visionmedia.github.io/superagent/#promise-and-generator-support
2021-07-29 11:26:28 +02:00
Johannes Zellner eda3cd83ae Make new login email translatable
Fixes #798
2021-07-29 10:54:38 +02:00
Johannes Zellner 01c0bd0e73 Update translations 2021-07-29 10:54:27 +02:00
Girish Ramakrishnan ef56bf9888 cloudron-setup: check if nginx/docker is already installed 2021-07-28 07:20:16 -07:00
Girish Ramakrishnan 24eaea3523 add missing await 2021-07-26 22:16:01 -07:00
Girish Ramakrishnan 0b8d9df6e7 taskworker: print exceptions 2021-07-26 22:11:25 -07:00
Girish Ramakrishnan 882a7fce80 redis: suppress password warning 2021-07-24 08:51:00 -07:00
Girish Ramakrishnan 52fa57583e bump up memory limit when setting data directory 2021-07-22 17:18:02 -07:00
Girish Ramakrishnan 62a56c455a webterminal: remove --rcfile
this broke sourcing of personal rcfile. see https://forum.cloudron.io/topic/5385/wp-cli-not-working-on-6-3-5
2021-07-22 13:03:33 -07:00
Girish Ramakrishnan 6e9b62dfba fix various users-test.js 2021-07-19 23:38:20 -07:00
Girish Ramakrishnan 48585e003d fix reverseproxy test 2021-07-17 09:49:32 -07:00
Girish Ramakrishnan a1c61facdc merge userdb.js into users.js 2021-07-16 22:33:22 -07:00
Girish Ramakrishnan 2840bba4bf fix the backup tests 2021-07-15 00:09:45 -07:00
Girish Ramakrishnan 004e812d60 merge backupdb into backups.js 2021-07-14 15:10:45 -07:00
Girish Ramakrishnan ac70350531 tasks.get returns null on not found 2021-07-14 10:59:49 -07:00
Girish Ramakrishnan e59d0e878d merge taskdb into tasks.js 2021-07-14 10:37:12 -07:00
Girish Ramakrishnan db685d3a56 notification: app updated message shown despite failure 2021-07-13 14:27:53 -07:00
Johannes Zellner 3e4adc29f7 Update translation for sso login information 2021-07-13 20:07:07 +02:00
Johannes Zellner bd2bc5b264 Hide groups/tags/state filter in app listing 2021-07-13 20:06:27 +02:00
Johannes Zellner 17cc6becd2 Ensure breadcrumbs and hash are correctly updated on folder navigation 2021-07-13 11:31:59 +02:00
Johannes Zellner 0947125a03 Some more test fixes 2021-07-13 11:13:16 +02:00
Johannes Zellner 227196138c Fixup database tests 2021-07-13 10:38:47 +02:00
Johannes Zellner b67dca8a61 Fix docker filter usage in runTests 2021-07-13 10:38:40 +02:00
Johannes Zellner 120ed30878 Update lock file 2021-07-13 10:38:26 +02:00
Girish Ramakrishnan 14000e56b7 Fix notifications.alert (async usage)
this broke the reboot button among other things
2021-07-12 16:11:58 -07:00
Girish Ramakrishnan cad7d4a78f more changes 2021-07-10 15:46:10 -07:00
Girish Ramakrishnan 3659210c7b typo 2021-07-10 11:13:36 -07:00
Girish Ramakrishnan eafd72b4e7 eventlog: typo in cleanup 2021-07-10 10:53:21 -07:00
Girish Ramakrishnan 5d836b3f7c sshfs: only chown when auth as root user 2021-07-10 08:36:30 -07:00
Girish Ramakrishnan 30d14f5359 sshfs: add required attribute for various fields 2021-07-09 22:40:52 -07:00
Girish Ramakrishnan fd9964c2cb mount: always use mountpoint for getting mount state
for ssfs.fuse, we get this on ubuntu 18:

root@my:/etc/systemd/system# systemctl status mnt-cloudronbackup.mount
● mnt-cloudronbackup.mount - backup
   Loaded: loaded (/etc/systemd/system/mnt-cloudronbackup.mount; enabled; vendor preset: enabled)
   Active: active (mounted) (Result: exit-code) since Sat 2021-07-10 00:16:53 UTC; 40s ago
    Where: /mnt/cloudronbackup
     What: root@149.28.218.27:/mnt/backups
  Process: 8273 ExecUnmount=/bin/umount /mnt/cloudronbackup -c (code=exited, status=32)
  Process: 8288 ExecMount=/bin/mount root@149.28.218.27:/mnt/backups /mnt/cloudronbackup -t fuse.sshfs -o allow_other,port=22,IdentityFile=/home/yellowtent/platformdata/sshfs/id_rsa_149.28.2
    Tasks: 0 (limit: 2314)
   CGroup: /system.slice/mnt-cloudronbackup.mount

Jul 10 00:16:53 my.cloudron.space systemd[1]: Mounting backup...
Jul 10 00:16:53 my.cloudron.space mount[8288]: read: Connection reset by peer
Jul 10 00:16:53 my.cloudron.space systemd[1]: mnt-cloudronbackup.mount: Mount process exited, code=exited status=1
Jul 10 00:16:53 my.cloudron.space systemd[1]: Mounted backup.

so even though the mount failed, it says active/mounted. sad.
2021-07-09 17:50:29 -07:00
Girish Ramakrishnan c93284e6fb mount: json parsing of error message 2021-07-09 16:59:57 -07:00
Girish Ramakrishnan 7f4d039e11 backups: remove any old mount point configuration 2021-07-09 16:15:58 -07:00
Girish Ramakrishnan 17a70fdefd sshfs: hide private key 2021-07-09 16:07:45 -07:00
Girish Ramakrishnan 4c08315803 update 6.3.5 changes 2021-07-09 14:48:40 -07:00
Johannes Zellner b87ba2f873 Fixup some app tests using test/common.js 2021-07-09 17:09:10 +02:00
Johannes Zellner e7053c2790 filemanager: reset selection if directory has changed 2021-07-09 17:02:25 +02:00
Johannes Zellner 7a6b765f59 Prevent crash if groupIds is not set 2021-07-09 13:25:27 +02:00
Johannes Zellner ede72ab05c Add more avatar tests 2021-07-09 12:30:47 +02:00
Johannes Zellner 35dc2141ea Make profile route tests work 2021-07-09 12:07:09 +02:00
Johannes Zellner 8c87f97054 We now explicitly expect a Buffer as avatar 2021-07-09 12:01:09 +02:00
Girish Ramakrishnan a0d71bb8b0 branding: fix error highlight with empty cloudron name 2021-07-08 12:01:17 -07:00
Girish Ramakrishnan 5a4cb00b96 Fix the changelog 2021-07-08 09:09:52 -07:00
Girish Ramakrishnan 01a585aa11 remove safe usage 2021-07-08 08:52:51 -07:00
Girish Ramakrishnan 4d44a1ceb9 translate error message and not the error object 2021-07-08 08:48:55 -07:00
Johannes Zellner 0db62b4fd8 Make avatar apis buffer based 2021-07-08 11:17:13 +02:00
Girish Ramakrishnan 306aeb3225 better text instead of "Cloudron in the wild" 2021-07-08 00:22:15 -07:00
Girish Ramakrishnan caa8104dda fix ldap test 2021-07-07 15:30:31 -07:00
Johannes Zellner feb7366124 Update translations 2021-07-07 21:08:29 +02:00
Johannes Zellner 423c6f2f85 Make sso login hint translatable 2021-07-07 21:08:23 +02:00
Johannes Zellner 22633dc16e Give unread notifications a small left border 2021-07-07 19:27:31 +02:00
Johannes Zellner 9bbd1af259 Ensure notifications are only fetched and shown for at least admins 2021-07-07 19:07:43 +02:00
Johannes Zellner bbbfc4da05 Use avatar in userdb.add() 2021-07-07 18:50:51 +02:00
Johannes Zellner be0c46ad8e Revert "Revert "Add avatar field constraint to not be NULL""
This reverts commit aafc22511b.
2021-07-07 18:50:09 +02:00
Johannes Zellner 2cb698c6bd setupaccount: Show input field errors below input field 2021-07-07 18:44:55 +02:00
Johannes Zellner aafc22511b Revert "Add avatar field constraint to not be NULL"
This reverts commit ba86802fc0.
2021-07-07 18:41:34 +02:00
Johannes Zellner 38d8bad1e1 Only kill container labeled with isCloudronManaged in runTests 2021-07-07 18:34:00 +02:00
Johannes Zellner ba86802fc0 Add avatar field constraint to not be NULL 2021-07-07 18:32:05 +02:00
Johannes Zellner de9d30117f Add gravatar change to changes 2021-07-07 18:15:17 +02:00
Johannes Zellner 16a3c1dd3b Add avatar migration script
Fixes #792
2021-07-07 17:54:25 +02:00
Johannes Zellner d292d5d419 Have 3 explicit avatar options
custom image, gravatar or none
2021-07-07 16:23:03 +02:00
Johannes Zellner 81e6cd6195 Make gravatar support explicit only 2021-07-07 16:16:04 +02:00
Johannes Zellner 2caac75dbd Always show alias and redirect dots 2021-07-06 19:09:47 +02:00
Johannes Zellner d75d1a717c Set focus automatically for new alias or redirect 2021-07-06 19:05:42 +02:00
Johannes Zellner f06c0530ce Fixup input element size 2021-07-06 18:00:30 +02:00
Johannes Zellner 59f257346d We don't allow setting notifications to unread anymore so also prevent state issues when decreasing the counter 2021-06-30 17:24:41 +02:00
Johannes Zellner cdad2a80d4 Remove unused require 2021-06-30 17:19:30 +02:00
Johannes Zellner 41273640da SSHFS also does not need to chown here 2021-06-30 17:10:34 +02:00
Johannes Zellner 7c15c26fa9 Move update badge out of the main a tag 2021-06-30 16:06:32 +02:00
Girish Ramakrishnan ac484a02f2 merge maildb.js into mail.js 2021-06-29 15:59:02 -07:00
Girish Ramakrishnan ea430b255b make the tests work 2021-06-29 11:01:46 -07:00
Girish Ramakrishnan 31498afe39 async'ify the groups code 2021-06-29 09:08:45 -07:00
Girish Ramakrishnan 7009c142cb 6.3.4 changes
(cherry picked from commit 700a7637b6)
2021-06-28 12:09:41 -07:00
Girish Ramakrishnan c052882de9 reverseproxy: remove any old dashboard domain configs 2021-06-27 08:58:33 -07:00
Girish Ramakrishnan e7d9af5aed users: asyncify and merge userdb.del 2021-06-26 10:13:21 -07:00
Girish Ramakrishnan 147c8df6e3 async'ify avatar and apppassword code 2021-06-25 23:32:21 -07:00
Girish Ramakrishnan 31d742fa67 fix sporadic ETIMEDOUT
it seems when docker is busy deleting images, we get a ETIMEDOUT.
the default was 10000.

2021-06-25T22:18:32.324Z box:apps BoxError: connect ETIMEDOUT
    at /home/yellowtent/box/src/settingsdb.js:26:36
    at Query.queryCallback [as _callback] (/home/yellowtent/box/src/database.js:96:42)
2021-06-25 16:46:49 -07:00
Girish Ramakrishnan dd5737f948 mail: enable editheader sieve extension and upgrade solr 2021-06-25 16:38:44 -07:00
Girish Ramakrishnan 50d7610bfd cloudron-support: createdAt -> creationTime 2021-06-25 12:51:42 -07:00
Girish Ramakrishnan e51dd8f530 installer: prepare apt before installing more packages
currently, this is only prepared when needed because don't want this
to happen on every update
2021-06-25 12:14:24 -07:00
Girish Ramakrishnan 56c54f1ab1 volume: add filesystem type 2021-06-25 10:21:09 -07:00
Girish Ramakrishnan bad6e39d59 volume: add filesystem type for shared folders
rename noop to mountpoint
2021-06-25 10:12:28 -07:00
Girish Ramakrishnan 1ce4875db1 volumes: set hostPath based on volume id
this is required for the file browser to work which does operations
based on the id

fixes #789
2021-06-24 17:32:41 -07:00
Girish Ramakrishnan da0c07ff33 remove hardcoded hostPath
this is now moved to the backend since hostPath now relies on the
volume id (for the filemanager to work)
2021-06-24 16:59:13 -07:00
Girish Ramakrishnan 097a7d6b60 sftp: rework appdata and volume mounting logic
this tries to solve two issues:

* the current approach mounts the data directories of apps/volumes individually.
this causes a problem with volume mounts that mount after the container is started i.e not
network time/delay but systemd ordering. With CIFS, the mount is a hostname. This requires
unbound to be running but unbound can only start after docker because it wants to bind to
the docker network. one way to fix is to not start sftp automatically and only start sftp
container in the box code. This results in the sftp container attaching itself of the
directory before mounting and it appears empty. (on the host, the directory will appear
to have mount data!)

* every time apptask runs we keep rebuilding this sftp container. this results in much race.

the fix is: mount the parent directory of apps and volumes. in addition, then any specialized appdata
paths and volume paths are mounted individually. this greatly minimized rebuilding and also since we don't rely
on binding to the mount point itself. the child directories can mount in leisure. this limits the race
issue to only no-op volume mounts.

part of #789
2021-06-24 16:51:58 -07:00
Girish Ramakrishnan 87b2b63043 sshfs: add StrictHostKeyChecking=no so that it can connect the first time 2021-06-24 15:10:00 -07:00
Girish Ramakrishnan 9b882499e8 sshfs: move the port near the server address 2021-06-24 15:04:51 -07:00
Girish Ramakrishnan 0b0d552f58 Fix usage of execSync
important thing is to not use encoding: 'utf8' because in that case
it will return a string instead of a Buffer object. '' is false but
Buffer() is not.
2021-06-24 12:59:47 -07:00
Johannes Zellner 4d2d04c232 Fix app update badge 2021-06-24 19:17:52 +02:00
Girish Ramakrishnan 5437291177 add to changes 2021-06-24 09:09:39 -07:00
Girish Ramakrishnan 78754f943d read avatar as binary and not base64 2021-06-24 09:09:08 -07:00
Girish Ramakrishnan 27db2c6855 Fix cert migrations 2021-06-24 08:30:51 -07:00
Girish Ramakrishnan 9c0f983ce1 backups: fix failure notitification 2021-06-24 01:44:46 -07:00
Girish Ramakrishnan b24cf78bc0 certs: fix renewal notification 2021-06-24 01:12:33 -07:00
Girish Ramakrishnan 2b13593630 notifications: only send backup failure email on 3 consecutive fails 2021-06-24 00:48:59 -07:00
Girish Ramakrishnan 6da7218d34 certs: show daysLeft in the logs 2021-06-24 00:48:59 -07:00
Girish Ramakrishnan 7d3270e51a notifications: do not jump json blob for out of disk space 2021-06-23 23:41:55 -07:00
Girish Ramakrishnan a723e3a4dd notification: periodic refresh 2021-06-23 23:17:42 -07:00
Girish Ramakrishnan 54dec7ae08 notifications: delete obsolete alerts 2021-06-23 22:51:38 -07:00
Girish Ramakrishnan 4dbd794b41 Fix display of backup warning
see cloudron/box#719
2021-06-23 22:12:08 -07:00
Girish Ramakrishnan 89607d2c64 remove the backup check notification and route
it seems we decided that instead of a notification, we display a warning in
the backups view itself (see #719).
2021-06-23 22:09:23 -07:00
Girish Ramakrishnan 3eb5a26c46 prefix translatable strings with tr: 2021-06-23 22:02:07 -07:00
Girish Ramakrishnan 1a406c4d7d notifications: translate messages prefixed with tr: 2021-06-23 21:59:30 -07:00
Girish Ramakrishnan ebab671f68 remove slash from container name 2021-06-23 17:20:11 -07:00
Girish Ramakrishnan 5129465e59 aws: const correctness 2021-06-23 14:30:00 -07:00
Girish Ramakrishnan baf543ba00 app: disable mounts from import UI for now 2021-06-22 16:14:47 -07:00
Girish Ramakrishnan e06400bb71 mountpoint: set chown and preserveAttributes 2021-06-22 16:09:52 -07:00
Girish Ramakrishnan 02263e8921 add back mountpoint check 2021-06-22 15:52:50 -07:00
Girish Ramakrishnan da6478272d provision: call done instead of callback 2021-06-22 14:40:58 -07:00
Girish Ramakrishnan 1ee6560f30 restore: fix UI 2021-06-22 14:34:41 -07:00
Girish Ramakrishnan 5e5948ecd4 typo 2021-06-22 13:45:15 -07:00
Girish Ramakrishnan 7b768d6149 backup: fix location display 2021-06-22 13:18:09 -07:00
Girish Ramakrishnan 15ff43369f mount: if unmount failed, do not proceed 2021-06-22 13:03:44 -07:00
Girish Ramakrishnan e9029eb1f9 backups: clear mount options on provider change 2021-06-22 13:03:25 -07:00
Girish Ramakrishnan a7783fdb0d remove the "-" because systemd makes it as \x2d when escaping 2021-06-22 09:46:18 -07:00
Girish Ramakrishnan 5040b4f3f9 backups: chown and preserve attribs on ext4 and sshfs 2021-06-22 09:27:11 -07:00
Johannes Zellner 7bc76f2f34 Actually 500 and 501 status codes do not mean the box as such is offline 2021-06-22 16:25:11 +02:00
Johannes Zellner 7472e78755 filemanager: Only retry every 2sec if path opening doesn't work right away to avoid busy loop 2021-06-22 16:24:35 +02:00
Johannes Zellner 0e5f8e75f9 filemanager: openPath() is not on the scope anymore 2021-06-22 16:07:40 +02:00
Girish Ramakrishnan 20fe04c0cf chown for sshfs as well 2021-06-21 23:21:40 -07:00
Girish Ramakrishnan 0fdb7f0a93 backups: show host and remotePath for sshfs 2021-06-21 23:19:47 -07:00
Girish Ramakrishnan ceddabd691 Fix tryAddMount usage 2021-06-21 23:13:37 -07:00
Girish Ramakrishnan cc0705183a backups: hardcode mountpoint 2021-06-21 22:08:19 -07:00
Girish Ramakrishnan 2aee2c9e27 update translations 2021-06-21 16:44:39 -07:00
Girish Ramakrishnan 3ba2f96d51 volume: remove private fields 2021-06-21 16:35:08 -07:00
Girish Ramakrishnan ccc45a41e6 volumes: remove the edit ui 2021-06-21 16:23:34 -07:00
Girish Ramakrishnan 6ace8d1ac5 volumes: fix various mount related issues
Various notes on mounting:

* The permissions come from the mounted file system and not the mount point.
This means that if we change the perms before mounting, it is overridden by
whatever is in the actual file system.

* uid/gid only works for permission-less file systems

SFTP container notes:

* Assumes that nothing changed if the host path hasn't changed. This means that
if a user changes the disk uuid, reload doesn't work.

* Not sure how/why, but even after unmounting the container can still access the old
mount files (!). With ext4 on disk change or nfs after root path change, the file manager
continues to be able to access the old mounts (despite umount succeeding).

All this led to following changes:

* Remove editing of volumes. Just allow editing username/password.
* edit UI then just also provides a way to re-mount.
* Change mode of mountpoint to be 777 post mounting for ease of use. Otherwise, we have to
make the user do this by ssh. this can always become options later.
2021-06-21 16:11:48 -07:00
Girish Ramakrishnan f433146484 volumes: reload sftp on update
when diskPath changes, docker is busy holding on to the previous mount!
I guess this is because this is all somehow inode based.
2021-06-21 11:53:27 -07:00
Girish Ramakrishnan c16a7c1f45 do not block for service to restart 2021-06-21 10:05:22 -07:00
Johannes Zellner b27b4a38eb Only enable notification ack button if there are any unread ones 2021-06-21 14:04:25 +02:00
Johannes Zellner 90112de6e4 Bring back backup warning translations 2021-06-21 09:53:48 +02:00
Girish Ramakrishnan cad08380ea volumes: hide hostPath for non noop 2021-06-21 00:20:12 -07:00
Girish Ramakrishnan 79ec7fb245 volumes: make sshfs work 2021-06-20 23:39:35 -07:00
Girish Ramakrishnan 87c22a4670 mount: mount as 777 for max compat
for cifs, file_mode can be 666
2021-06-20 22:48:37 -07:00
Girish Ramakrishnan 90657af7f2 mount: fix nfs re-mounting 2021-06-18 23:48:39 -07:00
Girish Ramakrishnan c23b935cea volumes: hostPath -> mount point 2021-06-18 23:31:11 -07:00
Girish Ramakrishnan 2aecf0c96a volumes: clear any previous error 2021-06-18 23:30:50 -07:00
Girish Ramakrishnan e614703305 volumes: fixes for ext4 2021-06-18 23:03:18 -07:00
Girish Ramakrishnan ecf2ff9e15 mount: better error message detection 2021-06-18 23:02:53 -07:00
Girish Ramakrishnan 55950c7e2d better description for mount files 2021-06-18 18:03:07 -07:00
Girish Ramakrishnan 5f509f802f install sshfs 2021-06-18 14:46:54 -07:00
Girish Ramakrishnan 0a3a7cb1a3 debug: replace newline in args 2021-06-18 14:33:50 -07:00
Girish Ramakrishnan e6e875814e systemctl show --value does not work on ubuntu 16 2021-06-18 14:29:03 -07:00
Girish Ramakrishnan 406b3394cb mail: fix issue where spam to internal lists was not blocked 2021-06-18 10:35:42 -07:00
Girish Ramakrishnan 5cad4d1ebd do not capitalize title words 2021-06-17 13:51:29 -07:00
Girish Ramakrishnan 21ec89a38a add note on dhparams.pem removal 2021-06-17 11:41:44 -07:00
Girish Ramakrishnan 77989893df remove boxdata/well-known directory
this has already moved into the domains table
2021-06-17 11:37:03 -07:00
Girish Ramakrishnan 7ca86cc96d cloudron-setup: do not cat to stdout 2021-06-17 10:03:59 -07:00
Johannes Zellner a2f1a1feb3 Add left padding for mailbox conditionally if radiobutton is shown 2021-06-17 12:34:49 +02:00
Johannes Zellner b0965b3ec7 Give more visual feedback for cog button 2021-06-17 12:32:16 +02:00
Girish Ramakrishnan bf1c7eedb7 clone: copy over the enableMailbox flag 2021-06-16 23:17:26 -07:00
Girish Ramakrishnan 9f9f745f47 Add vultr object storage 2021-06-16 22:51:05 -07:00
Girish Ramakrishnan f2e0ee12a2 vultr: object storage 2021-06-16 22:36:01 -07:00
Girish Ramakrishnan ef04253288 print the task options in the logs 2021-06-16 14:21:19 -07:00
Girish Ramakrishnan fa81491bf3 Fix uninstall of apps with bad docker images names
Some day we can implement https://github.com/distribution/distribution/blob/main/reference/regexp.go
2021-06-16 11:55:23 -07:00
Johannes Zellner 52ab35d8c6 Only show cog action on hover like before 2021-06-16 19:48:38 +02:00
Johannes Zellner 45236aa78d Fix error message 2021-06-16 19:25:05 +02:00
Johannes Zellner 9851eb0817 We now use the delay module outside of the tests 2021-06-16 19:24:43 +02:00
Girish Ramakrishnan 5f78722c8f profile: refresh 2fa status 2021-06-16 08:37:38 -07:00
Girish Ramakrishnan 3da97fb7cb rename activity -> eventlog 2021-06-15 11:17:55 -07:00
Girish Ramakrishnan 9436dc688b omit icon when creating install/clone eventlog entries
Otherwise, we hit "Error: ER_DATA_TOO_LONG: Data too long for column 'data'"
2021-06-15 11:12:52 -07:00
Girish Ramakrishnan 9c191c6c11 clear vultr token 2021-06-15 11:04:34 -07:00
Johannes Zellner 095d9fd7fa Prevent external returnTo targets for login 2021-06-07 12:11:09 +02:00
Girish Ramakrishnan 28c908b126 appstore: nothing to update when not registered yet 2021-06-05 22:21:07 -07:00
Girish Ramakrishnan 1de006b053 lint 2021-06-05 22:13:25 -07:00
Girish Ramakrishnan b2856bc8e0 vultr: fix out of bounds access 2021-06-05 22:12:11 -07:00
Girish Ramakrishnan b579f7ae90 better error messages for 401 2021-06-05 21:26:43 -07:00
Girish Ramakrishnan eb16e8a8ee eventlog: fix cleanup 2021-06-05 21:20:32 -07:00
Girish Ramakrishnan 579c046944 test: app token tests to api-test 2021-06-05 15:39:34 -07:00
Girish Ramakrishnan b778f1e616 test: move server-test into provision-test 2021-06-05 15:26:35 -07:00
Girish Ramakrishnan fe8358c3e3 test: remove tokendb from users-test 2021-06-05 15:14:07 -07:00
Girish Ramakrishnan 9c49ca5d2e test: move the 2fa tests into profile 2021-06-05 10:43:41 -07:00
Girish Ramakrishnan 9e34a95732 postgresql: fix backup hogging connections
This fixes the "FATAL: remaining connection slots are reserved for non-replication superuser connections"
2021-06-05 09:43:53 -07:00
Girish Ramakrishnan 9228f0cc12 move around the export to avoid circular dep when running tests 2021-06-04 23:53:30 -07:00
Girish Ramakrishnan ed7514e4ba typo 2021-06-04 19:47:18 -07:00
Girish Ramakrishnan ee7cddfbbc acme: fix http challenge 2021-06-04 17:51:26 -07:00
Girish Ramakrishnan cdbc51b208 openssl: older openssl (1.0.2g/ubuntu 16) requires distinguished_name 2021-06-04 16:48:56 -07:00
Girish Ramakrishnan dd3600b13c test: fix groups test 2021-06-04 14:55:14 -07:00
Girish Ramakrishnan 9fa63b4ef8 acme: openssl -ext is not recognized on ubuntu 16 2021-06-04 14:54:39 -07:00
Girish Ramakrishnan 2df8769fcf API has changed 2021-06-04 13:11:06 -07:00
Girish Ramakrishnan 7bee7b9ef8 tokens: async'ify 2021-06-04 13:06:38 -07:00
Girish Ramakrishnan 593038907c unbound: on ubuntu 16, sd_notify is not working
not clear, when unbound added support for this.

on ubuntu 16, unbound is 1.5.8.
on ubuntu 20, unbound is 1.9.4
2021-06-04 09:41:54 -07:00
Girish Ramakrishnan 64dcdb5e84 user cert may not exist 2021-06-03 22:51:28 -07:00
Girish Ramakrishnan 0208e3d3a2 test: make appstore-test use common.js 2021-06-03 22:39:26 -07:00
Girish Ramakrishnan acfb4d8553 remove empty test file 2021-06-03 22:23:48 -07:00
Girish Ramakrishnan d78df9405d Fix dashboardFqdn not set correctly because of typo 2021-06-03 21:33:46 -07:00
Girish Ramakrishnan 4937cbbc0b shell: add promises test 2021-06-03 19:36:37 -07:00
Girish Ramakrishnan a0c4ef9d0f more test fixes 2021-06-03 16:29:56 -07:00
Girish Ramakrishnan 8da4eaf4a3 fix tests 2021-06-03 16:08:39 -07:00
Girish Ramakrishnan c90a9e43cf Fix usage of eventlog.add 2021-06-03 11:42:32 -07:00
Girish Ramakrishnan 2c1bedd38a delay is a normal dep on not dev dep 2021-06-03 10:11:29 -07:00
Girish Ramakrishnan 7aac4455a9 eventlog: async'ify 2021-06-01 16:37:32 -07:00
Girish Ramakrishnan bdbda9b80e transaction now returns a promise 2021-06-01 16:11:01 -07:00
Girish Ramakrishnan 043d6692f5 notifications: rename Clear All to Mark All as Read 2021-06-01 09:09:57 -07:00
Girish Ramakrishnan e9ace613e2 cert: only inform user if renewal fails and only 10 days left 2021-06-01 09:09:16 -07:00
Girish Ramakrishnan 10a377e083 vultr DNS 2021-05-29 23:01:50 -07:00
Girish Ramakrishnan 380fe7c17a domains: add vultr dns 2021-05-29 22:58:18 -07:00
Girish Ramakrishnan 9e7dd3f397 notifications: acknowledged can be null 2021-05-29 21:56:35 -07:00
Girish Ramakrishnan 042d6099c4 notifications: always show all notifications 2021-05-29 16:18:03 -07:00
Girish Ramakrishnan e001a21e4b notifications: move vars/functions up a level 2021-05-29 16:08:11 -07:00
Girish Ramakrishnan 5aa6e18ea7 sync notification UI with backend changes 2021-05-29 16:03:38 -07:00
Girish Ramakrishnan 73917e95c9 rework notifications
notifications are now system level instead of user level.

To clarify the use events/notifications/email:
* eventlog - everything that is happenning on server
* notifications - specific important events (alerts)
* email - these are really urgent things that require immediate attention. this is for
  the case where an admin does not visit the dashboard often. can also be alerts like
  bad backup config or reboot required which are not events per-se.

Notes on notifications
* oom - notification only
* appUpdated - notification only
* cert renewal failure - only raise when < 10 days to go. also send email thereafter (todo).
* Backup failure - only if last 5 backups failed (todo).
* Box update - notification only. we anyway send newsletter.
* box update available - we raise a notification. no email.
* app update available - we already have update indicator on dashboard. so, no notification or email.

Alerts:
* backup config
* disk space
* mail status
* reboot
* box updated
* ubuntu update required
2021-05-28 15:29:53 -07:00
Girish Ramakrishnan 3ba62f2ba1 mail: do not forward spam 2021-05-27 22:21:17 -07:00
Girish Ramakrishnan 841c9bc261 add sshfs bits to restore and backup UI 2021-05-27 15:31:37 -07:00
Girish Ramakrishnan 9d664a7d7c typo 2021-05-27 15:15:29 -07:00
Girish Ramakrishnan b278056941 typo in backup filename 2021-05-27 15:08:51 -07:00
Girish Ramakrishnan 218450880e restore: add mounts support 2021-05-27 15:01:44 -07:00
Girish Ramakrishnan fcee182ca3 Update translations 2021-05-27 14:13:38 -07:00
Girish Ramakrishnan a34bdb9ddf backups: fix mounting logic of backup settings and cloudron restore 2021-05-27 13:52:05 -07:00
Girish Ramakrishnan 8590148803 typo 2021-05-27 13:19:13 -07:00
Girish Ramakrishnan 98988202a1 sftp: make the key unreadble by group/others 2021-05-26 15:59:07 -07:00
Girish Ramakrishnan 0342865129 sieve: redirects do not do SRS 2021-05-26 15:22:10 -07:00
Girish Ramakrishnan c605395885 app import: restore icon, tag, label, proxy configs etc 2021-05-26 09:49:00 -07:00
Girish Ramakrishnan d93c9b3c59 import is a state of its own now 2021-05-26 09:32:17 -07:00
Girish Ramakrishnan 098cff08f7 make import a task of it's own
this allows us to distinguish it in the eventlog and apptask logic
2021-05-26 09:27:15 -07:00
Girish Ramakrishnan 431e2a6ab9 clone: save app config
clone also clones the tags, labels and icon. this is not done for
restore or import since it's not clear if this is a good idea or not.
for example, if user had some custom tags and label set and then restores
to some old backup, is it expected to reset the labels and tags?
2021-05-26 09:03:05 -07:00
Girish Ramakrishnan 4a238256e8 more post install variables 2021-05-25 11:33:02 -07:00
Johannes Zellner 5718775bf7 Do not wrap table column 2021-05-25 14:10:00 +02:00
Girish Ramakrishnan 2fb6be81fc cloudron-setup: check if box.service exists instead 2021-05-24 19:05:49 -07:00
Girish Ramakrishnan 0a5a24ba2e add tryAddMount
we try to add a mount. if it fails, it will revert to the previous mount config.

there was a plan to make this work based on systemd-mount but we hit this bug - https://bugzilla.redhat.com/show_bug.cgi?id=1708996
2021-05-21 22:32:51 -07:00
Johannes Zellner 89754a62fe filemanager: Prevent and reset hash state during busy times 2021-05-20 19:26:20 +02:00
Johannes Zellner ecb93cb115 Better busy handling in filemanager on slow storage 2021-05-20 18:12:25 +02:00
Johannes Zellner e79c90f330 Prevent img preview flickering with an empty pixel image 2021-05-20 17:14:58 +02:00
Girish Ramakrishnan 691013d7e0 Make it a single line 2021-05-19 18:20:37 -07:00
Girish Ramakrishnan 5b3e800567 appstatus: better text 2021-05-19 14:01:41 -07:00
Girish Ramakrishnan 59db625ad9 volumes: wait for mount during add/update
this is a better feedback mechanism for the user
2021-05-19 11:08:33 -07:00
Girish Ramakrishnan 449d6b2de4 add missing callback 2021-05-18 14:49:15 -07:00
Girish Ramakrishnan 91df8df92d add alert for ubuntu 16 2021-05-18 14:48:01 -07:00
Girish Ramakrishnan a3c2fcf1b6 settings: display ubuntu version 2021-05-18 14:38:06 -07:00
Girish Ramakrishnan a5e34cf775 delete certs that have long expired (6 months)
fixes #783
2021-05-18 13:37:35 -07:00
Girish Ramakrishnan 76d0abae43 postgresql: set max conn limit per db 2021-05-18 09:04:29 -07:00
Johannes Zellner 1785b0352a Add initial sshfs support 2021-05-18 17:27:32 +02:00
Johannes Zellner 5d6a794d52 Add sshfs volume UI bits 2021-05-18 17:20:59 +02:00
Girish Ramakrishnan 14bb928d41 backups: fix various mount issues 2021-05-17 22:58:40 -07:00
Girish Ramakrishnan a54a404dac backups: add mount configuration and status 2021-05-17 22:50:49 -07:00
Girish Ramakrishnan 599b604dca tests: make volumes routes test pass 2021-05-17 22:23:24 -07:00
Girish Ramakrishnan c7474511aa fix volume test 2021-05-17 16:23:37 -07:00
Girish Ramakrishnan 124954d490 migrate old providers as generic mountpoint provider 2021-05-17 13:23:32 -07:00
Girish Ramakrishnan 53dce1e7aa users: rename createdAt to creationTime 2021-05-17 07:54:54 -07:00
Girish Ramakrishnan 2421536c23 add indexes for ORDER BY fields used in code
we hit ER_OUT_OF_SORTMEMORY with large tables
2021-05-17 07:06:11 -07:00
Girish Ramakrishnan aae40f506b backups: add mounting config 2021-05-14 15:27:07 -07:00
Girish Ramakrishnan 24dbf53c5d fix error handling 2021-05-14 14:46:16 -07:00
Girish Ramakrishnan a56766ab0e ensure nss-lookup.target is hit after unbound starts
https://github.com/NLnetLabs/unbound/issues/296

this fixes volume hostname resolution on reboot
2021-05-14 12:07:05 -07:00
Girish Ramakrishnan 43642b2d60 volumes: better options for ext4 2021-05-14 11:38:32 -07:00
Girish Ramakrishnan a3ea2a32f1 volumes: auto-refresh state when activating 2021-05-14 10:46:31 -07:00
Girish Ramakrishnan 8cb7c8cd1c volumes fixes 2021-05-14 10:26:57 -07:00
Girish Ramakrishnan 00cd10742f cifs: set uid/gid
because the mode is 0777, we should be fine with any valid uid/gid
2021-05-14 10:08:44 -07:00
Girish Ramakrishnan 0148a46244 Fix color of mount status 2021-05-14 10:01:23 -07:00
Girish Ramakrishnan 88a5526e9b starttask: set NODE_OPTIONS instead of env -S 2021-05-14 09:36:00 -07:00
Girish Ramakrishnan 06b7cb962b do not remove mount file if mountType was no-op
we might end up removing user's systemd file
2021-05-14 08:44:44 -07:00
Johannes Zellner 6f2382d5ff Set correct esversion for linter 2021-05-14 12:27:59 +02:00
Johannes Zellner 5e48b69d3b Revert "taskworker: Use --unhandled-rejections=strict"
Breaks the task argument count

This reverts commit b7643ae3b3.
2021-05-14 11:13:52 +02:00
Johannes Zellner a43e804ee2 Revert "taskworker: put the arg in shebang line"
Not supported on ubuntu 18

This reverts commit e6edc4e999.
2021-05-14 10:51:37 +02:00
Johannes Zellner 170efbcb5e Remove unused require 2021-05-14 10:47:54 +02:00
Johannes Zellner fe34c158eb Fix cifs mount point syntax and options 2021-05-14 10:30:11 +02:00
Girish Ramakrishnan 8fc4a8abf7 volume: use mountpoint command to check if it is mounted 2021-05-13 23:21:15 -07:00
Girish Ramakrishnan c2fc978ffd better heuristic to find mount error 2021-05-13 23:03:25 -07:00
Girish Ramakrishnan 938b88d61b Fix crash 2021-05-13 22:52:41 -07:00
Girish Ramakrishnan f927b9b5b2 make taskworker console.* log to file and not stdout
this is similar to code in box.js
2021-05-13 22:49:47 -07:00
Girish Ramakrishnan e6edc4e999 taskworker: put the arg in shebang line
otherwise, it gets passed as an arg to the script and is visible in process.argv!
2021-05-13 22:49:15 -07:00
Girish Ramakrishnan b7643ae3b3 taskworker: Use --unhandled-rejections=strict
this way, those tasks crash and do not hang on bad code
2021-05-13 22:32:12 -07:00
Girish Ramakrishnan 0c4b7f3202 do not use %s to print error object
this ends up suppressing the backtrace
2021-05-13 22:31:58 -07:00
Girish Ramakrishnan c680428b3c volume: show status message in edit dialog 2021-05-13 18:06:52 -07:00
Girish Ramakrishnan 65e114437b volume: always send a message 2021-05-13 17:50:27 -07:00
Girish Ramakrishnan 247dcbfe11 add volume status indicator 2021-05-13 16:09:04 -07:00
Girish Ramakrishnan 238073fe48 volume: get status 2021-05-13 16:08:55 -07:00
Girish Ramakrishnan 95e2b726c1 volumes: update UI 2021-05-13 10:48:39 -07:00
Girish Ramakrishnan 2c8e83dc6d volumes: update route 2021-05-13 10:48:30 -07:00
Girish Ramakrishnan ac4fa83080 status is already an object 2021-05-13 00:02:21 -07:00
Girish Ramakrishnan 50407eba0b volumes: generate systemd mount files based on mount type 2021-05-12 23:57:12 -07:00
Girish Ramakrishnan fd3fb23955 volumes: add mount UI 2021-05-12 23:47:45 -07:00
Girish Ramakrishnan 4c938b5e77 shell: expose promises variant 2021-05-12 17:30:29 -07:00
Girish Ramakrishnan 52da431388 misplaced await 2021-05-12 13:30:22 -07:00
Girish Ramakrishnan fc52cd7e0c volumes: async'ify 2021-05-12 11:46:04 -07:00
Girish Ramakrishnan 3a252fe10e boxerror: override the properties directly 2021-05-11 17:50:40 -07:00
Johannes Zellner 7dcc904af9 Fix new login location detection 2021-05-09 10:19:19 +02:00
Girish Ramakrishnan c56c43c464 app backup filename now has fqdn
Part of cloudron/box#782
2021-05-08 17:32:12 -07:00
Girish Ramakrishnan 91a7a9e43c backups: change app backup filename
change from app_appid_timestamp_vVersion to app_fqdn_vVersion

Fixes #782
2021-05-08 17:17:11 -07:00
Girish Ramakrishnan 4482da6148 move acme2.js one level up 2021-05-07 23:21:45 -07:00
Girish Ramakrishnan 302ea60b8d consolidate acme paths in the reverseproxy code 2021-05-07 23:21:42 -07:00
Girish Ramakrishnan dea31109e2 remove debug 2021-05-07 22:59:53 -07:00
Girish Ramakrishnan b3a805faff ensureCertificate: copy certs from db to disk as needed 2021-05-07 22:07:14 -07:00
Girish Ramakrishnan 593a61f51b apps: get user certificate 2021-05-07 21:37:23 -07:00
Girish Ramakrishnan 84af9580a6 migrate certs into the blobs database
use platformdata/nginx/cert to store the certs
2021-05-07 21:26:49 -07:00
Girish Ramakrishnan 182918b13d add note 2021-05-07 20:20:15 -07:00
Girish Ramakrishnan d8422ea976 fix safe() error handling 2021-05-07 15:56:43 -07:00
Girish Ramakrishnan cc684b4ea0 acme: async'ify 2021-05-06 22:52:49 -07:00
Girish Ramakrishnan 31503e2625 postgresql: bump max connections 2021-05-06 10:58:48 -07:00
Girish Ramakrishnan 39e7d9cc7a Further rename of admin -> dashboard 2021-05-05 13:14:48 -07:00
Girish Ramakrishnan 9418e93428 reverseproxy: adminOrigin is not used in the ejs 2021-05-05 13:13:04 -07:00
Girish Ramakrishnan 16dc008702 Fix failing test 2021-05-05 12:52:11 -07:00
Girish Ramakrishnan 44ac406e57 admin -> dashboard 2021-05-05 12:29:04 -07:00
Girish Ramakrishnan cc9b43450c configureAdmin is never used 2021-05-05 12:16:25 -07:00
Girish Ramakrishnan 7f6a0555b2 store custom app certificates in subdomains table
the REST route and model code is still ununsed as before since there
is no way to set the certs from the UI.
2021-05-05 10:58:20 -07:00
Girish Ramakrishnan 963e92b517 store fallback certs in the database 2021-05-04 22:30:28 -07:00
Girish Ramakrishnan 7de454911e migrate firewall configuration into database
the ports.json is for the moment server specific
2021-05-04 15:55:54 -07:00
Girish Ramakrishnan d8e464d9c7 Fix sftp paths 2021-05-04 15:55:37 -07:00
Girish Ramakrishnan fc2e2665b9 restore: write secrets into platformdata on start
this is required when cloudron is restored and we have to then write
keys from the db into the platformdata.
2021-05-04 14:56:25 -07:00
Johannes Zellner 5cc5c1923a If user-agent is not known pass the agent as incoming string 2021-05-04 20:36:41 +02:00
Johannes Zellner aa86174d6b We can have toplevel arrays just fine 2021-05-04 20:30:52 +02:00
Johannes Zellner fed8ba95f0 Fallback to unkown useragent and don't stash such login attempts 2021-05-04 20:07:28 +02:00
Johannes Zellner bec42c69c8 Do not use toplevel arrays 2021-05-04 19:52:21 +02:00
Girish Ramakrishnan 7d8d6d4913 better error messages 2021-05-04 10:45:36 -07:00
Johannes Zellner 5ab925e284 Fix login location stash 2021-05-04 15:00:09 +02:00
Girish Ramakrishnan f016f3d3e1 use rmdir instead of unlink 2021-05-04 00:28:44 -07:00
Girish Ramakrishnan dcea55cd81 chown the sftp directory 2021-05-04 00:27:45 -07:00
Johannes Zellner e10b7b59dc Only use simplified user agent for login detection 2021-05-04 09:11:16 +02:00
Girish Ramakrishnan 445325453b Source app specific bashrc 2021-05-03 23:08:48 -07:00
Girish Ramakrishnan d072682e82 load rc profile 2021-05-03 23:01:06 -07:00
Girish Ramakrishnan 885647f484 fix proxyauth icon 2021-05-03 23:00:51 -07:00
Girish Ramakrishnan c17743d869 migrate secrets into the database
the infra version is bumped because the nginx's dhparams path has changed
and the sftp server key path has changed.
2021-05-03 22:11:18 -07:00
Girish Ramakrishnan 4015f8fdf2 update safetydance 2021-05-03 15:55:27 -07:00
Girish Ramakrishnan 035f356dff add async support to database.query() 2021-05-02 23:18:07 -07:00
Girish Ramakrishnan 199eda82d1 Use Array.isArray instead 2021-05-02 11:26:47 -07:00
Girish Ramakrishnan 442110a437 lint 2021-05-01 11:21:09 -07:00
Girish Ramakrishnan 907ae4f233 secrets -> blobs
this will also have certs which are not really "secrets"
2021-04-30 22:34:27 -07:00
Girish Ramakrishnan 130ef72c9a Add secrets table
this will hold keys, certs etc
2021-04-30 22:07:51 -07:00
Girish Ramakrishnan a33fdee659 remove unused dir 2021-04-30 16:34:05 -07:00
Girish Ramakrishnan 6e7716e992 Update ts when setting task as well 2021-04-30 16:26:19 -07:00
Girish Ramakrishnan a3245278f0 Use ts to invalidate the browser image cache 2021-04-30 16:19:59 -07:00
Girish Ramakrishnan bad77fd99e apps: update ts in code instead of database
ts is useful as a versioning mechanism (for example, icon changed). update the timestamp explicity in code instead of db.
this way health and healthTime can be updated without changing ts.
2021-04-30 16:14:29 -07:00
Girish Ramakrishnan 0062e6d9fe apps: add icon and appStoreIcon to database 2021-04-30 14:35:21 -07:00
Girish Ramakrishnan 64414eb932 new login mail: minor adjustments to text 2021-04-30 12:01:57 -07:00
Girish Ramakrishnan 698ab93cc9 Add to CHANGES 2021-04-30 10:34:10 -07:00
Girish Ramakrishnan 8ff68331a8 proxyAuth: use default expiry time in cookie (1 year) 2021-04-30 10:31:09 -07:00
Girish Ramakrishnan 6fe8974a2d location -> loginLocations 2021-04-30 10:28:34 -07:00
Girish Ramakrishnan 44027f61e6 Fix failing tests 2021-04-30 09:48:00 -07:00
Johannes Zellner 549b2f2a6b Improve new login location email 2021-04-30 16:20:50 +02:00
Johannes Zellner fb5c2a5e52 Properly detect new user agents and location 2021-04-30 15:22:10 +02:00
Girish Ramakrishnan af2c096975 branding: move logo into database
initially, i tried to put this in the current value field but that
is TEXT and has a size limit of 64K. TEXT also stores things with
character encoding, so we have to stash it as base64
2021-04-29 18:28:03 -07:00
Girish Ramakrishnan 3c09416e44 Use Buffer.isBuffer instead 2021-04-29 15:37:32 -07:00
Girish Ramakrishnan 6df5a4f79b Remove unused FIREWALL_CONFIG_FILE 2021-04-29 15:35:42 -07:00
Girish Ramakrishnan df0532714e Fix various debugs 2021-04-29 15:25:19 -07:00
Girish Ramakrishnan 6a32291609 Move updatechecker.json into platform data 2021-04-29 14:01:24 -07:00
Girish Ramakrishnan b8ea9de439 move profile icons into the database 2021-04-29 13:57:24 -07:00
Girish Ramakrishnan 7b8fd3596e well known is now stored in the database 2021-04-29 12:17:44 -07:00
Girish Ramakrishnan 6a294f6cd6 Add 6.2.8 changes 2021-04-28 10:40:14 -07:00
Girish Ramakrishnan fe6ee45645 typo 2021-04-27 15:25:11 -07:00
Girish Ramakrishnan cd300bb6e2 graphite: carbon crash fix
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923464
https://forum.cloudron.io/topic/4797/graphite-keeps-crashing-oom/34
2021-04-27 14:25:12 -07:00
Girish Ramakrishnan cb573c0a37 reverseproxy: identify LE staging correctly 2021-04-27 12:55:11 -07:00
Girish Ramakrishnan 38425e75b5 tests: create firewall directory 2021-04-26 14:15:39 -07:00
Johannes Zellner 70f2337b09 Allow apps to override the Referrer-Policy header 2021-04-26 11:48:18 +02:00
Girish Ramakrishnan f3d870978b add tests for inactive mailbox and list 2021-04-21 12:39:18 -07:00
Girish Ramakrishnan d437acebe2 notifications: can also mark it as unread 2021-04-21 12:20:58 -07:00
Girish Ramakrishnan bb3f9744fb notifications: fix pagination of listByUserIdPaged
we have to filter in sql query, otherwise we don't get consistent per page count
2021-04-21 10:55:31 -07:00
Girish Ramakrishnan fbceb67df9 notifications: remove app up/down 2021-04-21 10:55:31 -07:00
Johannes Zellner de8d861e56 Add basic .jshintrc 2021-04-21 16:15:01 +02:00
Johannes Zellner 61e51c7875 Send new login location notification mail 2021-04-21 16:14:49 +02:00
Johannes Zellner 80d00577e5 Move username indicators to top 2021-04-20 21:05:52 +02:00
Johannes Zellner 2dd46b31a2 Only show login indicator for non-admins 2021-04-20 20:50:30 +02:00
Johannes Zellner 84bc28b371 Show usermanagement indicator in app grid 2021-04-20 20:43:37 +02:00
Girish Ramakrishnan 8b99af952a turn: turn off verbose logging 2021-04-20 11:30:31 -07:00
Johannes Zellner d74f2b8506 Stop using deprecated developer/login route in tests 2021-04-20 17:52:53 +02:00
Johannes Zellner 8b0fbd8e77 Stop using deprecated developer/login in test scripts 2021-04-20 17:49:31 +02:00
Girish Ramakrishnan 727e6720e8 schema.sql: fix appPasswords constraint 2021-04-19 21:02:14 -07:00
Girish Ramakrishnan 142af8e700 Fix notifications schema 2021-04-19 21:00:31 -07:00
Girish Ramakrishnan 0c8e0c4715 notifications: send backup fail only to owner
only superadmin has access to server and can adjust backup config
2021-04-19 20:57:10 -07:00
Girish Ramakrishnan 613da5fff9 notifications: remove user add/edit/update notifications
these just clutter the real notifications. these are in the eventlog
anyways.
2021-04-19 20:44:35 -07:00
Girish Ramakrishnan 375978b526 Setup -> Set up
Setup - noun
Set up - action/verb
2021-04-19 18:20:32 -07:00
Girish Ramakrishnan 1487823641 Disable 2FA -> Reset 2FA 2021-04-19 17:48:21 -07:00
Girish Ramakrishnan 355de5b0a4 notifications: fix update notification
the notification wasn't working because this was in apptask and the apptask died
before it could send out the email. we now move the notification to box process
and also remove the email notification.
2021-04-19 15:14:04 -07:00
Girish Ramakrishnan 3ab0a25ec9 Update npm packages 2021-04-17 23:12:33 -07:00
Girish Ramakrishnan 482169c805 Remove superfluous brackets 2021-04-17 22:23:15 -07:00
Girish Ramakrishnan bba9b7e24e add weblate badge 2021-04-17 22:21:56 -07:00
Girish Ramakrishnan 7a7223a261 OCSP: do not set must-staple in certificate request
On first visit in firefox, must-staple certs (unlike chrome which ignores must-staple) always fail.
Investigating, it turns out, nginx does not fetch OCSP responses on reload or restart - https://trac.nginx.org/nginx/ticket/812 .
So, one has to prime the OCSP cache using curl requests. Alternately, one can use `openssl ocsp -noverify -no_nonce` and
then set `ssl_stapling_file`. Both approaches won't work if the OCSP servers are down and then we have to have some retry logic.
Also, the cache is per nginx worker, so I have no clue how many times one has to call curl. The `ssl_stapling_file` approach
requires some refresh logic as well. All very messy.

For the moment, do not set must-staple in the cert. Instead, check if the cert has a CSP URL and then enable
stapling in nginx accordingly.
2021-04-16 13:33:32 -07:00
Girish Ramakrishnan 4d919127a7 implement OCSP stapling
can verify stapling using openssl s_client -connect hostname:443 -status

status_request is RFC6066. there is also status_request_v2 (RFC6961) but this is
not implemented even in openssl libs yet
2021-04-16 12:13:54 -07:00
Johannes Zellner a68a4ce36b Tone down app item focus and reduce UI shakiness 2021-04-16 15:52:56 +02:00
Girish Ramakrishnan 5d2fd81c0d Add missing callback() 2021-04-15 16:33:21 -07:00
Girish Ramakrishnan ef476f74bf notifications: no email for app up/down/oom events
emails will not be used for self monitoring events. these are best done
from the outside. we just log everything in eventlog and raise notifications
as well.
2021-04-15 15:29:25 -07:00
Girish Ramakrishnan d29d46d812 mail: add active flag to mailboxes and lists 2021-04-15 11:49:19 -07:00
Girish Ramakrishnan 81c393153b mail: add active flag to mailbox and lists 2021-04-15 11:38:19 -07:00
Girish Ramakrishnan e4076d7a75 minor fixes to reset dialog 2021-04-15 11:38:19 -07:00
Johannes Zellner d5201a29da Add new translations 2021-04-15 17:38:32 +02:00
Johannes Zellner f06b4e5b1d Give feedback on password email sent 2021-04-15 17:31:08 +02:00
Johannes Zellner 11cc074a09 Rework invite/password reset UI 2021-04-15 17:16:15 +02:00
Johannes Zellner 737b9fb73e Add 2FA disable button in password reset dialog 2021-04-15 10:54:55 +02:00
Girish Ramakrishnan 00856b79dd firewall: Set BOX_ENV 2021-04-14 23:01:08 -07:00
Girish Ramakrishnan c3e14cd11f user: return 2fa status for the UI 2021-04-14 21:46:35 -07:00
Girish Ramakrishnan 5833d6ed5d Fix failing dns and network test 2021-04-14 21:43:51 -07:00
Girish Ramakrishnan d0f0dc7339 Add client API to disable user 2fa 2021-04-14 20:58:43 -07:00
Girish Ramakrishnan f15714182b users: add route to disable 2fa 2021-04-14 20:45:35 -07:00
Girish Ramakrishnan 09368dd267 2fa routes have changed 2021-04-14 20:42:37 -07:00
Girish Ramakrishnan 6d214cf0f2 2fa: fix routes to not have a slash
otherwise, it feels like it is some sort of resource
2021-04-14 19:59:46 -07:00
Girish Ramakrishnan f9a72b530c Fix coding style 2021-04-14 15:54:09 -07:00
Girish Ramakrishnan e983b0d385 more changes 2021-04-14 15:54:01 -07:00
Girish Ramakrishnan 0712eb1250 namecheap: fix del 2021-04-13 22:27:38 -07:00
Girish Ramakrishnan 564409d8b7 namecheap: Send it as POST 2021-04-13 22:17:01 -07:00
Girish Ramakrishnan 1c9c8e8e2b namecheap: refactor 2021-04-13 15:10:24 -07:00
Girish Ramakrishnan 04398c9b16 appstore: on dashboard domain change, update cloudron label 2021-04-13 14:19:45 -07:00
Girish Ramakrishnan 9a9c406fbe appstore: remove track begin/end
we used these to track error rates which we don't need anymore since
it's quite reliable
2021-04-13 14:10:30 -07:00
Johannes Zellner f964178682 Update translation 2021-04-13 15:49:56 +02:00
Johannes Zellner 8757e5ba42 print dashboard domain on --owner-login 2021-04-13 15:49:42 +02:00
Johannes Zellner ba7ef8e7f0 Add app stop modal 2021-04-13 13:39:46 +02:00
Johannes Zellner 4e2a5e6f15 Remove extra p-tag closing 2021-04-13 12:53:50 +02:00
Johannes Zellner f54ffa796f Fix drop-shadow for tabview 2021-04-13 12:49:47 +02:00
Johannes Zellner 3e00e924f8 Use power-off icon for app stop 2021-04-13 12:49:36 +02:00
Johannes Zellner 592c50ba75 Ensure the hitbox for action button is not overlayed 2021-04-13 12:29:57 +02:00
Girish Ramakrishnan 131711ef5c mysql: bump connection limit to 200 2021-04-09 10:55:31 -07:00
Johannes Zellner 5ae5566ce8 Fix blocklist setting when source and list have mixed ip versions 2021-04-07 17:31:04 +02:00
Johannes Zellner 114a5ee2b1 Ensure we have a valid but unused iptables blocklist for testing 2021-04-07 17:30:19 +02:00
Johannes Zellner c2c8e92d24 Allow to skip docker container cleanup when running tests 2021-04-07 16:46:12 +02:00
Johannes Zellner 5c79ac8893 Use single cog and dark-mode fixes 2021-04-07 14:03:13 +02:00
Johannes Zellner 01dddade5a Fixup the app grid item height 2021-04-07 13:02:50 +02:00
Johannes Zellner b83f263919 Better show focus on app items 2021-04-07 13:02:27 +02:00
Johannes Zellner 82e8a893fd Cleanup and reorder some scss 2021-04-07 13:02:12 +02:00
Johannes Zellner 27236a5692 Move shared image error handler to client.js 2021-04-07 10:47:29 +02:00
Johannes Zellner 6e4b9d8196 Fix indentation 2021-04-07 10:41:50 +02:00
Johannes Zellner 36df6b9e1e Group terminal/logs/filemanager toolbar buttons 2021-04-07 10:36:01 +02:00
Johannes Zellner ab1d3f41fa Replace action button dropdown with simple button to app details view 2021-04-07 10:22:21 +02:00
Johannes Zellner dbeb523882 Replace hover actions in app grid with dropdown 2021-04-06 18:27:59 +02:00
Johannes Zellner aae2a36d1e Put play/pause or start/stop button toplevel 2021-04-06 16:22:44 +02:00
Girish Ramakrishnan 6d044bfbf3 mysql: Fix "mbind: Operation not permitted" warning"
https://github.com/docker-library/mysql/issues/303#issuecomment-643154859
2021-04-05 15:28:46 -07:00
Girish Ramakrishnan d161fe9ebd add progress message for restoring addons 2021-04-05 11:35:47 -07:00
Girish Ramakrishnan 2d4323a72c make the configure button disabled instead of hidden 2021-04-05 10:24:56 -07:00
Girish Ramakrishnan da008874dc repair: reinstall if no backup 2021-04-05 10:22:50 -07:00
Girish Ramakrishnan 919f510796 linode object storage: update aws sdk
https://github.com/aws/aws-sdk-js/pull/3674
2021-04-02 11:54:22 -07:00
Girish Ramakrishnan e613452058 mysql: remove use of mysql_upgrade 2021-04-01 11:50:03 -07:00
Johannes Zellner ae36ce07d1 Make prettyDates translatable 2021-04-01 17:04:46 +02:00
Johannes Zellner b9ef941b80 Make backup check messages translatable 2021-04-01 16:36:52 +02:00
Johannes Zellner 5ccb1d44fe Send translation keys instead of raw english string for backup checks 2021-04-01 16:35:50 +02:00
Johannes Zellner 465fc427d6 Fix translation for graph time selection and display 2021-04-01 16:05:13 +02:00
Johannes Zellner 850ff87849 Also make multiselect filter placeholer translatable 2021-03-31 17:27:48 +02:00
Johannes Zellner bc45423eca Make the multiselect widget translatable 2021-03-31 17:21:45 +02:00
Johannes Zellner 92cb5f3583 Consolidate and improve search placeholder translation 2021-03-31 17:01:00 +02:00
Johannes Zellner 9a5bd8a846 Use 24h time instead of 12h to avoid localization requirement 2021-03-31 14:42:10 +02:00
Johannes Zellner 4393143ee8 Fixup the missing translation for registry settings 2021-03-31 14:32:11 +02:00
Johannes Zellner ddb29fd85b Enable translation for external LDAP other and disabled option 2021-03-31 14:20:16 +02:00
Johannes Zellner c04951c45e Add missing translation key for mailinglist name input label 2021-03-31 14:09:17 +02:00
Johannes Zellner ec50163b66 Ensure appstore categories are alphabetical in all languages 2021-03-31 14:03:49 +02:00
Girish Ramakrishnan 84dfd4aa84 firewall: no need to keep 25 always open 2021-03-30 15:56:01 -07:00
Girish Ramakrishnan 726c028360 clone: copy services config 2021-03-30 12:45:28 -07:00
Girish Ramakrishnan f211de1ff4 apphealthmonitor: 403 is ok 2021-03-30 11:57:30 -07:00
Johannes Zellner 9c7241e9ac Update translation for new category keys 2021-03-30 15:04:01 +02:00
Johannes Zellner 3b5c0c2e63 Sort categories in code alphabetically 2021-03-30 15:03:51 +02:00
Johannes Zellner c69c8b57c4 Always allow long tooltips
This is required since the translation we don't know upfront
2021-03-30 13:31:25 +02:00
Johannes Zellner c9628970d9 Do not show scary red error notifications on timeouts or other 500
Instead dump to terminal with email instructions
2021-03-29 10:37:15 +02:00
Girish Ramakrishnan ee0c50bea2 debug mode: make fs writable
otherwise, people have to use CLI tool.
2021-03-26 13:20:40 -07:00
Girish Ramakrishnan c1ee3dcbd4 collectd: cache du values and send it every Interval (20)
collectd plugin ordering matters. the write_graphite plugin establishes
a TCP connection but there is a race between that and the df/du values that
get reported. du is especially problematic since we report this only every 12 hours.

so, instead we cache the values and report it every 20 seconds. on the carbon side,
it will just retain every 12 hours (since that is the whisper retention period).

there is also FlushInterval which I am not 100% sure has any effect. by default, the
write_graphite plugin waits for 1428 bytes to be accumulated. (https://manpages.debian.org/unstable/collectd-core/collectd.conf.5.en.html)

https://github.com/collectd/collectd/issues/2672
https://github.com/collectd/collectd/pull/1044

I found this syntax hidden deep inside https://www.cisco.com/c/en/us/td/docs/net_mgmt/virtual_topology_system/2_6_3/user_guide/Cisco_VTS_2_6_3_User_Guide/Cisco_VTS_2_6_1_User_Guide_chapter_01111.pdf
2021-03-26 00:21:38 -07:00
Johannes Zellner 0402dce1ee Invite token should be valid for 7 days 2021-03-25 17:25:56 +01:00
Girish Ramakrishnan c1b61bc56b add note 2021-03-24 20:30:02 -07:00
Girish Ramakrishnan 2d771d7c44 6.2.7 changes 2021-03-24 19:37:18 -07:00
Girish Ramakrishnan d277f8137b redis: backup before upgrade 2021-03-24 19:27:24 -07:00
Girish Ramakrishnan 7ae79fe3a5 graphite: restart collectd on upgrade 2021-03-24 14:10:31 -07:00
Girish Ramakrishnan 407dda5c25 Add 6.2.6 changes
(cherry picked from commit 6cc07cd005)
2021-03-24 10:37:22 -07:00
Girish Ramakrishnan 1f59974e83 give graphite more time to start before restarting collectd 2021-03-24 10:26:19 -07:00
Girish Ramakrishnan 8e8e90b390 Add changes for 6.2.5 2021-03-24 09:45:58 -07:00
Girish Ramakrishnan 0447dce0d6 graphite: restart collectd as well 2021-03-23 16:34:36 -07:00
Girish Ramakrishnan 32f385741a graphite: implement upgrade
for the moment, we wipe out the old data and start afresh. this is because
the graphite web app keeps changing quite drastically.
2021-03-23 16:34:32 -07:00
Girish Ramakrishnan 91a4ae90f2 better logs 2021-03-23 13:06:37 -07:00
Johannes Zellner 3c527b7064 Poor man's quoting fix for auth proxy in french 2021-03-23 20:59:01 +01:00
Girish Ramakrishnan 3201c5bda3 remove CLOUDRON_MAIL_SMTP_SERVER_HOST from sendmail
let's keep it in email addon because that will trigger reconfigure of apps
on server name change
2021-03-23 10:40:47 -07:00
Johannes Zellner 0bd250a34b filemanager: Fix deep copying 2021-03-23 14:51:51 +01:00
Girish Ramakrishnan c6920bd860 HSTS: bump the max-age to 2 years
Side note: https://hstspreload.org/ . This is what the chromium project expects
for preloading.
2021-03-22 19:04:28 -07:00
Girish Ramakrishnan 66ff2a9eb7 Revert "make box code send emails with STARTTLS"
This reverts commit ca496df535.

2525 has no TLS anymore
2021-03-22 14:34:07 -07:00
Johannes Zellner ff5ad8b062 Avoid rendering native select widget 2021-03-22 10:46:39 +01:00
Girish Ramakrishnan c3d30a1d99 mail: rework STARTTLS strategy
instead of fixing all apps which is a royal pain, we instead make Haraka
offer STARTTLS for 2587 and no STARTTLS for 2525.
2021-03-21 20:38:05 -07:00
Girish Ramakrishnan 7df89e66c8 request has no retry method
i thought it was using superagent
2021-03-20 11:19:45 -07:00
Girish Ramakrishnan 4954b94d4a acme2: add a retry to getDirectory, since users are reporting a 429 2021-03-19 09:59:09 -07:00
Girish Ramakrishnan f3d9b81942 check for autofs mounts
autofs mounts are "mounts on demand". this way, instead of mounting
lots of things on startup, you can mount it on first access.
2021-03-19 09:59:09 -07:00
Girish Ramakrishnan 93510654a5 nfs: also check for nfs4 mount type
it seems in some version of ubuntu you mount with "-t nfs4".
this still doesn't handle autofs yet.

https://help.ubuntu.com/community/NFSv4Howto
2021-03-19 09:54:09 -07:00
Johannes Zellner 3b38889f32 Fixup admin link in app grid for mobile 2021-03-19 10:53:56 +01:00
Girish Ramakrishnan 39a0b9c351 typo 2021-03-18 21:35:18 -07:00
Girish Ramakrishnan a6f202be04 enableMailbox is a string for the radio buttons 2021-03-18 18:26:33 -07:00
Girish Ramakrishnan 8048e68eb6 graphite: disable tagdb 2021-03-18 18:03:45 -07:00
Girish Ramakrishnan 60bdc34ad0 typo 2021-03-18 12:59:51 -07:00
Johannes Zellner 9161e5f7e8 filemanager: Fix state issue with editor 2021-03-18 16:43:33 +01:00
Johannes Zellner 12e32cc8ff Disable mail from input if app manages it on its own 2021-03-18 15:46:43 +01:00
Johannes Zellner 394b784106 Give the mail from save button a bit more space 2021-03-18 15:45:11 +01:00
Johannes Zellner a3a928367b Fix mail from setting description indentation 2021-03-18 15:44:35 +01:00
Johannes Zellner bacdf2c87c Fix radio button alignment like checkboxes 2021-03-18 15:42:18 +01:00
Johannes Zellner 53e50912e6 Allow local network development to test mobile/iOS better 2021-03-18 14:43:17 +01:00
Johannes Zellner 5d5c712f1c Some cleanups for showing popular and section names depending on category and search 2021-03-18 14:28:22 +01:00
Johannes Zellner 050ea48e3e Show popular apps first when no category is selected 2021-03-18 14:14:22 +01:00
Girish Ramakrishnan 09e07868bb fix up optional sendmail ui 2021-03-17 15:52:21 -07:00
Girish Ramakrishnan 2ff1f70eb8 Add to changes 2021-03-17 14:22:50 -07:00
Girish Ramakrishnan 613ac16601 Fix display of user management/dashboard visiblity for email apps 2021-03-17 14:22:33 -07:00
Girish Ramakrishnan 84cf5809a0 Do not show user management string for sogo 2021-03-17 14:11:08 -07:00
Girish Ramakrishnan 67d9b50a16 Fix tests 2021-03-17 12:14:36 -07:00
Girish Ramakrishnan f7bd47888a Fix issue where df output is not parsed correctly
LANG is the default locale i.e when LC_* are not specificall
LC_ALL will override them all

https://forum.cloudron.io/topic/4681/going-to-system-info-triggers-assertion-error
2021-03-17 11:14:07 -07:00
Johannes Zellner 20b42042da Put radiobuttons instead of checkboxes for mail from setting 2021-03-17 16:40:17 +01:00
Girish Ramakrishnan 10fee49e9a make mailbox optional 2021-03-17 02:36:01 -07:00
Girish Ramakrishnan 9960729d6b Add optional mailbox support 2021-03-16 22:40:38 -07:00
Girish Ramakrishnan 4cba5ca405 sftp: only rebuild when app task queue is empty
when multiple apptasks are scheduled, we end up with a sequence like this:
    - task1 finishes
    - task2 (uninstall) removes  appdata directory
    - sftp rebuild (from task1 finish)
    - task2 fails because sftp rebuild created empty appdata directory

a fix is to delay the sftp rebuild until all tasks are done. of course,
the same race is still there, if a user initiated another task immediately
but this seems unlikely. if that happens often, we can further add a sftpRebuildInProgress
flag inside apptaskmanager.
2021-03-16 18:29:01 -07:00
Girish Ramakrishnan 098da7426c Add CLOUDRON_MAIL_SMTP_STARTTLS env
starting 6.3, the internal mail server will do STARTTLS. this env
allows apps to configure themselves appropriately for pre 6.3 and
post 6.3 appropriately.

we trigger a re-configure which ensures that the new env gets put
in the database and then in the container.
2021-03-16 16:20:08 -07:00
Girish Ramakrishnan a3ee79ccbd More 6.3 changes 2021-03-16 16:07:37 -07:00
Girish Ramakrishnan b18f42b372 tokens: remove expiresAt and add lastUsed 2021-03-16 16:06:35 -07:00
Girish Ramakrishnan 176388111c tokens: add lastUsedTime 2021-03-16 16:04:17 -07:00
Johannes Zellner 515d93f5ef filemanager: find a new unique name when file copy clashes 2021-03-16 21:24:26 +01:00
Johannes Zellner 10d1bb861a filemanager: Skip keyboard actions if modal dialogs are open 2021-03-16 18:17:38 +01:00
Johannes Zellner 0abf1e76d4 filemanager: Select entry on context menu button clicked 2021-03-16 18:11:28 +01:00
Girish Ramakrishnan 750f313c6a update: set memory limit properly 2021-03-15 19:25:16 -07:00
Girish Ramakrishnan ca496df535 make box code send emails with STARTTLS 2021-03-14 12:19:37 -07:00
Girish Ramakrishnan 168636e493 renewCerts: do not pass domain 2021-03-13 21:52:37 -08:00
Girish Ramakrishnan 79d37cf361 update redis 2021-03-12 14:29:57 -08:00
Girish Ramakrishnan 8cc9fe5504 addons: better error handling 2021-03-12 14:17:19 -08:00
Girish Ramakrishnan ec5966b2f5 6.3.0 changes 2021-03-12 10:54:39 -08:00
Girish Ramakrishnan 825835b3d1 mail: allow TLS from internal hosts
We need to only provide a cert that matches the MX record

https://serverfault.com/questions/389413/what-host-name-should-the-ssl-certificate-for-an-smtp-server-contain
2021-03-12 10:44:42 -08:00
Girish Ramakrishnan 1e96606110 error.code is a number which causes crash at times in BoxError 2021-03-12 10:10:49 -08:00
Girish Ramakrishnan 3ee3786936 6.2.4 changes 2021-03-11 19:00:34 -08:00
Girish Ramakrishnan c4d60bde83 another export crash fix
we export using the old addon containers, which has a bug that it crashes
when db is missing. so, we have to skip them already. the crash then causes
future exports to also fail because it is restarting.
2021-03-11 18:55:37 -08:00
Girish Ramakrishnan 4aae663b2e typo 2021-03-10 15:32:46 -08:00
Girish Ramakrishnan da00bce4b7 6.2.3 changes 2021-03-10 15:11:03 -08:00
Girish Ramakrishnan 0067766284 Fix addon crashes with missing databases
this happens because we have some bug in sftp container causing uninstall(s) to
fail. the database of those apps are gone but the export logic then tries to export
them and it all fails.
2021-03-10 15:09:15 -08:00
Girish Ramakrishnan bb0b5550e0 Update mail container for LMTP cert fix 2021-03-10 09:50:09 -08:00
Johannes Zellner 4dffce0b71 Apply node module security updates 2021-03-10 10:40:55 +01:00
Johannes Zellner a547d0dc05 Update monaco editor 2021-03-10 10:38:12 +01:00
Johannes Zellner 19d0af9e71 Update xterm.js 2021-03-10 10:36:38 +01:00
Girish Ramakrishnan 1db1f3faf4 Make it 30MB for good measure 2021-03-09 19:41:36 -08:00
Girish Ramakrishnan 9650a55c85 bump request timeouts 2021-03-09 14:45:22 -08:00
Girish Ramakrishnan 9451bcd38b services: start mail first to reduce downtime 2021-03-05 19:31:38 -08:00
Girish Ramakrishnan aa7dbdd1fa Add 6.2.2 changes 2021-03-05 16:13:34 -08:00
Girish Ramakrishnan ac18fb47b4 Fix ENOBUFS with large number of executable files 2021-03-05 15:09:56 -08:00
Girish Ramakrishnan 14e1e2fc71 add note on ovh storage vs s3 subdomain usage 2021-03-05 10:31:20 -08:00
Girish Ramakrishnan 91a229305d missing backups: check if the s3 end point is valid
s3 api never return NotFound or ENOENT - https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html

Sadly, DO/OVH etc just return NotFound instead of NoSuchKey. And we cannot
distinguish easily if we are talking to some s3 server or some random server.
This is applicable for things like say minio where maybe there is something
apache now just giving out 404 / NotFound.
2021-03-05 01:24:16 -08:00
Girish Ramakrishnan 7e02996b28 Revert "ovh: storage URLs have changed"
This reverts commit 9e853c07eb.

The URL change is incorrect. storage subdomain is for openstack
2021-03-05 00:15:43 -08:00
Girish Ramakrishnan 70b0da9e38 ovh: revert incorrect URL migration
https://forum.cloudron.io/topic/4584/issue-with-backups-listings-and-saving-backup-config-in-6-2
2021-03-05 00:15:17 -08:00
Girish Ramakrishnan 4275114d28 s3: remove retry options for exists check 2021-03-04 23:40:23 -08:00
Girish Ramakrishnan 83872a0a1d installer: is_update is not set correctly 2021-03-04 23:14:00 -08:00
Girish Ramakrishnan 4d4aad084c remove hard dep on systemd-resolved
the start.sh script does a "systemctl restart systemd-resolved". this
ends up restarting the box code prematurely! and then later when mysql
restarts, the box code loses connection and bad things happen (tm)
especially during a platform update.

we don't log to journald anymore, so not sure if EPIPE is still an issue
2021-03-04 21:07:52 -08:00
Girish Ramakrishnan 8994a12117 6.2.1 changes 2021-03-04 15:53:40 -08:00
Girish Ramakrishnan 28b6a340f0 restore: skip dns setup 2021-03-04 15:50:02 -08:00
Girish Ramakrishnan 1724607433 apphealth: clamp health time to first run
the platform.start can take forever. this means that we start the
clock to include platform.start and this sends a lot of spurious
up/down notifications.

also, bump the down threshold to 20 mins.
2021-03-04 15:03:08 -08:00
Girish Ramakrishnan 39864fbbb9 use the curl that retries 2021-03-04 12:09:23 -08:00
Girish Ramakrishnan 94dcec9df1 while...do 2021-03-04 12:09:23 -08:00
Girish Ramakrishnan 68c67f351e add ionos to import and restore UI 2021-03-04 12:03:48 -08:00
Girish Ramakrishnan 10ca889de0 apphealthmonitor: better debugs 2021-03-04 11:42:43 -08:00
Girish Ramakrishnan cfcc210f9c try pulling images in a loop 2021-03-03 21:54:08 -08:00
Girish Ramakrishnan 38e5d2286e typo 2021-03-03 14:34:55 -08:00
Girish Ramakrishnan 149e176cfd better logs 2021-03-03 13:49:22 -08:00
Girish Ramakrishnan 3a19ab6866 better error message when update-info.json is old 2021-03-03 10:21:52 -08:00
Girish Ramakrishnan 818185bf5b DO: add SFO3 region 2021-03-03 08:53:27 -08:00
Johannes Zellner 26847d52f7 filemanager: implement direct entry and thus history support 2021-03-03 17:01:51 +01:00
Johannes Zellner f1625ed345 filemanager: Add explicit context-menu button 2021-03-03 14:22:21 +01:00
Girish Ramakrishnan aa71a734b9 Fix issue where mysql was restarting after new box code has started up
not 100% sure because of missing log timestamps, but mysql restarts after the box
has started up. As seen from logs below, we try to mark the apps for restart on
platform update. But this failed because mysql was restarting at that time.
This ended up with e2e test failing.

box:apps restartAppsUsingAddons: marking nc4801.autoupdatetest.domain.io for restart
box:apps restartAppsUsingAddons: error marking nc4801.autoupdatetest.domain.io for restart: {"name":"BoxError","reason":"Database Error","details":{"fatal":true,"code":"PROTOCOL_CONNECTION_LOST"},"message":"Connection lost: The server closed the connection.","nestedError":{"fatal":true,"code":"PROTOCOL_CONNECTION_LOST"}}
box:apps restartAppsUsingAddons: marking wekan1398.autoupdatetest.domain.io for restart
box:database Connection 51 error: Connection lost: The server closed the connection. PROTOCOL_CONNECTION_LOST
box:database Connection 52 error: Connection lost: The server closed the connection. PROTOCOL_CONNECTION_LOST
Box GET /api/v1/cloudron/status 500 Internal Server Error connect ECONNREFUSED 127.0.0.1:3306 41.251 ms - 217
2021-03-02 23:27:31 -08:00
Girish Ramakrishnan d81ee7d99a timestamp the setup and installer logs
at some point, mysql disconnects the box code and it becomes hard to
debug without the timestamps
2021-03-02 23:06:37 -08:00
Girish Ramakrishnan 2946657889 stopAllTasks: the box dir might disappear
during update, we stop the box code which ends up trying to stop all tasks.
this gives warning like below:

box:shell stopTask (stdout): shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
box:shell stopTask (stdout): job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
box:shell stopTask (stdout): box-task-8.service loaded active running /home/yellowtent/box/src/scripts/../taskworker.js 8 /home/yellowtent/platformdata/logs/tasks/8.log
box:shell stopTask (stdout): job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
box:shell stopTask (stdout): job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
box:shell stopTask (stdout): job-working-directory: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
2021-03-02 22:26:43 -08:00
Girish Ramakrishnan fc6f91157d Fix progress indicator 2021-03-02 21:25:23 -08:00
Girish Ramakrishnan 315d721174 Fix accumulation logic 2021-03-02 21:23:20 -08:00
Girish Ramakrishnan 244d84e168 Add doc link for dashboard visiblity 2021-03-02 20:51:38 -08:00
Girish Ramakrishnan ed7f2e7bb5 more changes 2021-03-02 19:11:56 -08:00
Girish Ramakrishnan 6c01a5d9bb hide registy config with noop backend 2021-03-02 18:43:15 -08:00
Girish Ramakrishnan 53cb9b1f7a fix registry config setter
* default registry provider is noop
* when testing config, skip noop provider
2021-03-02 18:34:06 -08:00
Girish Ramakrishnan cccdf68cec backups: preserve symlinks in rsync mode 2021-03-02 18:11:59 -08:00
Girish Ramakrishnan a1b6b20bdd there is a fake unset group 2021-03-02 17:44:36 -08:00
Girish Ramakrishnan 530bef34f0 translate group filter header 2021-03-02 17:34:06 -08:00
Girish Ramakrishnan f04654022a add to changes 2021-03-02 13:01:49 -08:00
Girish Ramakrishnan 2b92310d24 call exitHandler to remove motd before reboot 2021-03-02 13:01:19 -08:00
Girish Ramakrishnan c21155f07b Add to changes 2021-03-02 08:15:27 -08:00
Johannes Zellner f85e787e01 We actually move files not copy 2021-03-02 16:54:14 +01:00
Johannes Zellner 44ce9024eb Do not show error if item is dropped on itself 2021-03-02 16:51:21 +01:00
Johannes Zellner a79c435bdc Better handle this ourselves instead of angular 2021-03-02 16:31:31 +01:00
Johannes Zellner 5f961bada4 Revert "encodeURI all REST api paths to preserve whitespaces"
This reverts commit a63e0ed287.
2021-03-02 16:24:15 +01:00
Johannes Zellner a63e0ed287 encodeURI all REST api paths to preserve whitespaces 2021-03-02 16:09:58 +01:00
Johannes Zellner 99f096c971 Make sure paths in request json bodies are not url encoded 2021-03-02 11:12:43 +01:00
Johannes Zellner 2ccbe61b27 Never pre-select any acl if at least one group exists 2021-03-02 09:47:24 +01:00
Girish Ramakrishnan 282edca008 Fix doc link 2021-03-01 11:36:07 -08:00
Girish Ramakrishnan baded52c96 return BoxError and not Error 2021-03-01 11:31:22 -08:00
Johannes Zellner 09840df51a Also enable app visibility selector for email apps 2021-03-01 20:16:05 +01:00
Girish Ramakrishnan 476f348693 restore: resolve any boxdata directory symilnk before downloading
the tar-fs module cannot handle symlinks and must be given a resolved directory
since it uses lstat()
2021-03-01 11:02:43 -08:00
Johannes Zellner 10a459726a Fix html rendering in translated email access string 2021-03-01 19:45:09 +01:00
Johannes Zellner b9501d69a5 Allow to select dashboard visibility during app installation also 2021-03-01 18:52:10 +01:00
Girish Ramakrishnan dd58c174a8 change default referrer policy to same-origin
https://forum.cloudron.io/topic/4546/referrer-policy-header-is-overwritten
2021-03-01 09:34:23 -08:00
Johannes Zellner 34cd750121 Update en translation to add default Spanish language 2021-03-01 10:03:55 +01:00
Johannes Zellner 8ccbb03d69 Add spanish translation 2021-03-01 09:58:48 +01:00
Johannes Zellner 16d209e0c8 Add french translation 2021-03-01 09:58:26 +01:00
Girish Ramakrishnan 376e070b72 update mail container
new solr and higher concurrency
2021-02-28 18:45:43 -08:00
Girish Ramakrishnan f0e0372127 Update addons (move code to /app/code convention) 2021-02-28 15:52:06 -08:00
Girish Ramakrishnan 5e2c655ccb update mongodb
fixes #767
2021-02-28 12:49:44 -08:00
Girish Ramakrishnan d61e3407b4 show the cancel task button sooner 2021-02-26 11:47:48 -08:00
Girish Ramakrishnan 4a158c559e Fix typo: overwrite -> overwriteDns 2021-02-26 11:43:00 -08:00
Girish Ramakrishnan ca27288d43 update translations 2021-02-26 10:13:21 -08:00
Girish Ramakrishnan 03a59cd500 mysql: disable binlogs altogether
this is useful primarily for replication

http://dimitrik.free.fr/blog/archives/2018/04/mysql-performance-testing-80-with-less-blood.html
2021-02-26 09:53:37 -08:00
Girish Ramakrishnan b71ab187ff mysql: update binlog in addon 2021-02-25 19:10:28 -08:00
Girish Ramakrishnan bbed7c1d8a stack scripts: add hint that cloudron is installing
with linode, user has no clue that cloudron is installing when they SSH in.
2021-02-25 13:36:57 -08:00
Girish Ramakrishnan d787c430ce Better footnote for dry run 2021-02-25 10:53:32 -08:00
Girish Ramakrishnan c496d994c0 remove unused createAMI and digitalocean.sh 2021-02-25 10:33:41 -08:00
Girish Ramakrishnan 7a6a170451 remove retire.sh 2021-02-25 10:32:53 -08:00
Girish Ramakrishnan 7fb4fbdaf3 update translations 2021-02-24 22:46:52 -08:00
Girish Ramakrishnan 5a6b261ba2 add to changes 2021-02-24 22:38:40 -08:00
Girish Ramakrishnan 70fbcf8ce4 add route to sync dns records
merge the mail dns route with this one as well

fixes #737
2021-02-24 22:37:59 -08:00
Girish Ramakrishnan 8dc0236e89 Add UI to sync dns 2021-02-24 22:18:39 -08:00
Girish Ramakrishnan 5f0ff047d4 setDnsRecords API has changed 2021-02-24 22:00:05 -08:00
Girish Ramakrishnan 93712c0f03 emit progress message in register/unregister locations 2021-02-24 18:32:28 -08:00
Girish Ramakrishnan e78abe2fab move register* to domains 2021-02-24 17:54:19 -08:00
Girish Ramakrishnan bdbbc78497 2021 is here 2021-02-24 17:08:43 -08:00
Girish Ramakrishnan e190076f1a apptask: skip waiting for dns propagation
part of #737
2021-02-24 16:57:51 -08:00
Girish Ramakrishnan 4a85207dba remove debug 2021-02-24 16:39:41 -08:00
Girish Ramakrishnan b0e80de9ec add missing arg 2021-02-24 16:36:13 -08:00
Girish Ramakrishnan a546914796 mysql: keep binlog to couple of days 2021-02-24 16:00:46 -08:00
Girish Ramakrishnan 0980a394b7 restore: skipDnsSetup flag 2021-02-24 15:54:11 -08:00
Girish Ramakrishnan 3af6012779 typo 2021-02-24 15:03:49 -08:00
Girish Ramakrishnan 5b51f73be4 restore: add skipDnsSetup flag
part of #737
2021-02-24 14:56:09 -08:00
Girish Ramakrishnan d74537868a apps: add skipDnsSetup to install/restore/clone routes
these are not used in the UI but added for completeness

part of #737
2021-02-24 14:51:18 -08:00
Girish Ramakrishnan 2056ede942 apptask: add skipDnsSetup flag to skip dns setup
Part of #737
2021-02-24 14:47:05 -08:00
Girish Ramakrishnan f2d366c35d dkim: use a hash for the selector instead of domain name directory
we use a hash instead of random so that it is the same (unless admin domain changed)
within the same server. hash also ensures one cannot reverse it.

fixes #770
2021-02-24 11:41:58 -08:00
Girish Ramakrishnan 0bb2da8a04 better error message 2021-02-24 09:53:57 -08:00
Girish Ramakrishnan 5cd23ff19f typo 2021-02-24 09:52:07 -08:00
Girish Ramakrishnan 79e4d6e317 remove untranslated string 2021-02-24 09:36:21 -08:00
Girish Ramakrishnan 38607048ee mysql: make binlog have 5 day expiry 2021-02-24 09:19:26 -08:00
Girish Ramakrishnan 9c413ffe3d do not overwrite existing dmarc
fixes #769
2021-02-24 09:08:56 -08:00
Girish Ramakrishnan 14e1cb5ad6 Update packages 2021-02-24 09:08:22 -08:00
Johannes Zellner 2ae80312ee Do not update task info for non-admins 2021-02-24 17:12:18 +01:00
Girish Ramakrishnan aaf93cb772 proxyAuth: check for basicAuth flag to permit basic auth
fixes #765
2021-02-23 21:54:49 -08:00
Girish Ramakrishnan 8f08c52103 not required anymore to uninstall gnome-shell 2021-02-23 18:57:15 -08:00
Girish Ramakrishnan 9ccd82ce4e set binlog config in mysql
keep max binlog file size to 100M. and rotate then in 10 days
2021-02-23 14:24:58 -08:00
Girish Ramakrishnan 013669e872 Update mail container
this disables TLSv1 and 1.1 in dovecot
2021-02-22 14:16:55 -08:00
Girish Ramakrishnan 9ebdeca3ad add another changelog 2021-02-22 11:50:47 -08:00
Johannes Zellner 8823487bc1 Rebuild lock file with npm version 6.14.10 2021-02-22 10:43:52 +01:00
Girish Ramakrishnan c4dffa393b backups: remove entries from database that don't exist in storage
fixes #772
2021-02-19 11:34:22 -08:00
Johannes Zellner cec4d51649 Allow portbindings to be below 1024
This is required for example for adguard using port 53
2021-02-19 17:34:05 +01:00
Johannes Zellner f39fd36b85 Ensure if no sso option is there we preset correctly 2021-02-19 17:02:03 +01:00
Girish Ramakrishnan a5c4b5d8a1 tls addon: restart apps on cert change 2021-02-18 09:44:13 -08:00
Girish Ramakrishnan 2f58092af2 Fix .well-known not served up properly for redirection 2021-02-18 09:30:39 -08:00
Johannes Zellner ad94b75607 Update translations and add vietnamese 2021-02-18 17:11:00 +01:00
Johannes Zellner 670f34fde6 Allow to set access to apps from groups edit form 2021-02-18 17:01:49 +01:00
Johannes Zellner bfb22c04b7 Make callback optional for refreshInstalledApps() 2021-02-18 17:01:35 +01:00
Johannes Zellner 550d6b9868 Fix linter issues 2021-02-18 16:16:42 +01:00
Johannes Zellner abb5a2c985 Move email logs button to the same place as system logs 2021-02-18 11:25:38 +01:00
Johannes Zellner 1f7877e0e5 Do not specify random node engines in package.json 2021-02-18 11:07:49 +01:00
Girish Ramakrishnan a304c7f4a5 implement tls addon 2021-02-17 23:20:08 -08:00
Girish Ramakrishnan 601fc9a202 it is uuid.v4() now 2021-02-17 23:18:36 -08:00
Girish Ramakrishnan 32e00bdf47 cloudron-support: print the admin fqdn 2021-02-17 20:29:56 -08:00
Girish Ramakrishnan 83fa83a709 cloudron-support: typo 2021-02-17 20:04:43 -08:00
Girish Ramakrishnan 895ccdb549 allow port 853 for DoT 2021-02-17 13:11:00 -08:00
Girish Ramakrishnan fd8741be16 add to changes 2021-02-17 09:24:50 -08:00
Johannes Zellner d377a23ebc If groups are used, do not allow app installation without choosing the access settings 2021-02-17 17:10:39 +01:00
Johannes Zellner 3206afcd7c Do not remove accessRestriction from install app listing 2021-02-17 14:43:25 +01:00
Girish Ramakrishnan ab2d246945 Update graphite to base image 2021-02-16 16:56:33 -08:00
Girish Ramakrishnan 9ca6ac7080 mail: refresh config on location change 2021-02-16 12:40:36 -08:00
Johannes Zellner 3098917d55 Add access control group filter 2021-02-16 20:15:16 +01:00
Girish Ramakrishnan 41ec22e8c3 clear timeout when getting service status 2021-02-16 11:13:41 -08:00
Johannes Zellner af54142997 Add ldap debug for unhandled routes 2021-02-16 17:20:41 +01:00
Girish Ramakrishnan c8c4f99849 Reduce gzip_min_length to keep tools like semrush happy 2021-02-15 11:46:36 -08:00
Girish Ramakrishnan b7bc5d38bd services: add a refresh button 2021-02-15 11:38:51 -08:00
Johannes Zellner 891cb135f4 Update lock file 2021-02-15 17:42:11 +01:00
Johannes Zellner 6427f16743 Always show English versions of languages to avoid re-setting issues 2021-02-15 17:41:59 +01:00
Girish Ramakrishnan 48c52533c4 firewall: syntax cleanup 2021-02-12 08:13:47 -08:00
Johannes Zellner 1a98d6d2bd iptables --dports only supports up to 15 ports apparently 2021-02-12 15:56:19 +01:00
Girish Ramakrishnan 615198cd36 mail: use latest base image 2021-02-11 15:35:04 -08:00
Johannes Zellner 1efcfc69f4 Add netcup to dns setup screen 2021-02-11 17:01:37 +01:00
Girish Ramakrishnan 664b3ab958 sftp: multiparty fix for node 14 2021-02-09 23:35:32 -08:00
Girish Ramakrishnan dac677df06 sftp: force rebuild when infra changes 2021-02-09 22:57:21 -08:00
Girish Ramakrishnan fd2087d7e4 Fix mysql auth issue
only PHP 7.4 supports the caching_sha2_password mechanism. so we
make the default as mysql_native_password
2021-02-09 17:31:45 -08:00
Girish Ramakrishnan 25e59adb2a Update translations 2021-02-09 15:39:56 -08:00
Girish Ramakrishnan eb7530b5fd add provider to registry config
this way there is a clear way to disable/remove config
2021-02-09 15:36:28 -08:00
Girish Ramakrishnan d5087ff0c2 registry config: add provider 2021-02-09 14:33:20 -08:00
Girish Ramakrishnan 1d0ad3cb47 proxyAuth: Fix docker UA detection 2021-02-09 13:45:00 -08:00
Girish Ramakrishnan 30c3acaed9 change debug string 2021-02-08 23:20:45 -08:00
Girish Ramakrishnan afd938abdf update more modules 2021-02-08 23:14:32 -08:00
Johannes Zellner 419e1d65e4 Ensure we always set the correct language 2021-02-08 21:36:22 +01:00
Girish Ramakrishnan 38ca8926af createReleaseTarball: bump node version 2021-02-06 22:00:13 -08:00
Girish Ramakrishnan 283f1aac21 Update base image because of mongodb issue 2021-02-06 21:57:37 -08:00
Girish Ramakrishnan 8ba1f3914c Update postgresql for latest base image 2021-02-06 11:14:23 -08:00
Girish Ramakrishnan a262b08887 Update redis for latest base image 2021-02-06 10:26:54 -08:00
Girish Ramakrishnan 925408ffcd Update turn image to use latest base image 2021-02-06 10:20:31 -08:00
Girish Ramakrishnan 04d4375297 Update sftp image to use latest base image 2021-02-06 10:10:03 -08:00
Girish Ramakrishnan 691b15363a base image: fix yq typo 2021-02-05 21:15:07 -08:00
Girish Ramakrishnan caadb1d418 new base image 3.0 2021-02-05 20:25:17 -08:00
Girish Ramakrishnan 382ae7424d async 3: the whilst and doWhilst test funcs are async 2021-02-04 16:39:47 -08:00
Girish Ramakrishnan 6073d2ba7e Use new base image 3.0.0 2021-02-04 16:22:23 -08:00
Girish Ramakrishnan 6ecbd4a0fd update packages 2021-02-04 11:01:32 -08:00
Girish Ramakrishnan 92c43e58c7 update docker to 20.10.3 2021-02-04 11:01:30 -08:00
Girish Ramakrishnan dc91abb800 update node to 14.15.4 2021-02-04 11:01:08 -08:00
Girish Ramakrishnan e19ab45e81 ovh: add url migration from s3. to storage. 2021-02-04 10:21:54 -08:00
Girish Ramakrishnan bec228b854 ionos: add profit bricks object storage 2021-02-04 10:14:42 -08:00
Girish Ramakrishnan 72daaa9ff0 ionos: add profitbricks object storage 2021-02-04 10:14:35 -08:00
Girish Ramakrishnan 8106fa3b7d Add to changes 2021-02-03 16:34:14 -08:00
Girish Ramakrishnan 9e853c07eb ovh: storage URLs have changed
https://forum.cloudron.io/topic/4362/possibly-needing-to-update-ovh-object-storage-url
2021-02-03 16:33:43 -08:00
Girish Ramakrishnan 4d2ba3b082 make it clear what app password gives access to 2021-02-03 13:15:38 -08:00
Johannes Zellner 5f0889c281 Remove duplicate string in terminal 2021-02-03 20:10:07 +01:00
Girish Ramakrishnan 282040ed1b gcs: use delete concurrency 2021-02-01 14:23:15 -08:00
Girish Ramakrishnan 36552f651d backups: fix broken UI in config page 2021-02-01 14:16:35 -08:00
Girish Ramakrishnan bcd04715c0 updater: set the backup memory limit 2021-02-01 14:07:23 -08:00
Johannes Zellner 64ea5e827b filemanager: make copy of entries into select to avoid reference 2021-02-01 20:32:32 +01:00
Johannes Zellner da6ee44a2a filemanager: Give visual feedback on breadcrumb drop 2021-02-01 20:28:55 +01:00
Johannes Zellner cc34847de9 filemanager: allow drop on breadcrumbs 2021-02-01 20:19:54 +01:00
Johannes Zellner 567f430b7b filemanager: Prepare for multiselect drag'n'drop but don't use it yet 2021-02-01 19:59:45 +01:00
Johannes Zellner 14b2fa55c3 Update sftp 3.1.0 addon image 2021-02-01 19:20:58 +01:00
Johannes Zellner 04e103a32d Do not bump infra version 2021-02-01 19:06:13 +01:00
Johannes Zellner ccd481e64a filemanager: ensure files are refreshed on paste from copy 2021-02-01 18:20:48 +01:00
Johannes Zellner f420107704 filemanager: only call callback if it is a function 2021-02-01 18:20:25 +01:00
Johannes Zellner cd4b6c448c filemanager: Add select all and deselect on escape 2021-02-01 18:17:54 +01:00
Johannes Zellner 3e04da7062 Implement keyboard shortcuts for copy/cut/paste 2021-02-01 17:48:57 +01:00
Johannes Zellner f47015223c filemanager: recursive copy 2021-02-01 17:20:51 +01:00
Johannes Zellner 2935fa6a36 filemanager: implement copy for files 2021-02-01 16:45:55 +01:00
Johannes Zellner 0b0c02e421 Update sftp image for copy function 2021-02-01 16:13:46 +01:00
Girish Ramakrishnan 196a5cfb42 Add missing require 2021-01-31 20:47:33 -08:00
Girish Ramakrishnan fc408b8288 Fix app auto-update breakage 2021-01-31 20:46:55 -08:00
Girish Ramakrishnan 436c54b829 Update italian translation 2021-01-31 11:15:50 -08:00
Girish Ramakrishnan e2c342f242 apptaskmanager: Fix crash 2021-01-30 21:16:41 -08:00
Johannes Zellner 7e970a175d filemanager: Add more UI actions 2021-01-30 23:54:00 +01:00
Johannes Zellner e18b522ff3 Allow to paste into directory entry 2021-01-30 23:26:32 +01:00
Johannes Zellner 77cb64369b filemanager: add basic cut/paste 2021-01-30 23:23:34 +01:00
Johannes Zellner bd4423c9c6 filemanager: Remove individual action buttons 2021-01-30 22:21:19 +01:00
Johannes Zellner af390db21e filemanager: Add Edit menu item 2021-01-30 22:02:55 +01:00
Johannes Zellner 1f3eeb4f43 filemanager: make chown support multiple files 2021-01-30 18:20:06 +01:00
Johannes Zellner 778317aa8a Update translation 2021-01-30 17:16:22 +01:00
Johannes Zellner c12dfcef54 filemanager: allow to delete all selected files 2021-01-30 17:08:32 +01:00
Johannes Zellner 5880101d9a Update dependencies 2021-01-30 12:17:29 +01:00
Johannes Zellner 13cc4fb045 revision needs to be quoted to become a string 2021-01-30 11:55:21 +01:00
Johannes Zellner 66450913b5 filemanager: Implement multiselect with cmd/ctrl key 2021-01-29 18:35:35 +01:00
Johannes Zellner 3d55cfaaca filemanager: Use double click to open 2021-01-29 11:55:35 +01:00
Johannes Zellner c435d4d35a Add modified column to filemanager 2021-01-29 11:53:02 +01:00
Johannes Zellner 719b7485bd Move pretty date filter to shared client.js 2021-01-29 11:52:47 +01:00
Johannes Zellner 7d60ef5fd6 Bust translation cache on updates 2021-01-29 11:18:26 +01:00
Johannes Zellner 6820a3def1 Fixup linter issues 2021-01-29 11:15:33 +01:00
Girish Ramakrishnan 19fcabd32b mail: data.headers is now headers 2021-01-29 00:02:03 -08:00
Girish Ramakrishnan a842d77b6d Fix SOGo login
listAllMailboxes query was mangled
2021-01-28 22:21:44 -08:00
Girish Ramakrishnan ef68cb70c0 email autoconfig 2021-01-28 16:58:37 -08:00
Girish Ramakrishnan 364fe2f29f $timeout is not used 2021-01-28 10:07:35 -08:00
Girish Ramakrishnan b146d78525 Fix disk usage graphs 2021-01-27 21:48:16 -08:00
Girish Ramakrishnan adfb506af4 Fix disk usage graphs 2021-01-27 21:48:06 -08:00
Girish Ramakrishnan 1d188297f9 6.1.1 changes 2021-01-27 13:10:40 -08:00
Girish Ramakrishnan 141a32315f ignore any applyServiceConfig failures when starting services 2021-01-27 11:33:27 -08:00
Johannes Zellner 012968003f The progress callback already gives the whole uploaded size 2021-01-27 16:47:29 +01:00
Girish Ramakrishnan 8f7b224846 proxyauth: make auth error handler return 401 for docker client 2021-01-27 00:33:27 -08:00
Girish Ramakrishnan 0d9bc325fa Fix doc urls 2021-01-26 22:09:36 -08:00
Girish Ramakrishnan 3a26f63c2a fix reading matrix config 2021-01-26 22:07:21 -08:00
Girish Ramakrishnan 4610e05ca1 Fix well-known migration 2021-01-26 21:10:06 -08:00
Johannes Zellner de74b05703 Update english translation 2021-01-26 19:32:39 +01:00
Girish Ramakrishnan df24a6ab32 update translations 2021-01-25 22:41:41 -08:00
Johannes Zellner cc4407a438 adminMaxCount is not a feature for now, since we have roles feature 2021-01-25 19:14:32 +01:00
Johannes Zellner 08e8ce4d75 Fix sfp docs link typo 2021-01-25 16:42:33 +01:00
Girish Ramakrishnan d627b6b0b0 add some space between image and description 2021-01-22 12:41:26 -08:00
Girish Ramakrishnan 5d9568eb91 Fix typo 2021-01-22 11:24:24 -08:00
Johannes Zellner a9f52ba305 Ensure to rebuild reverse proxy config if http port changes on update 2021-01-22 11:25:32 +01:00
Girish Ramakrishnan 9f9575f46a Fixes to service configuration
restart service does not rebuild automatically, we should add a route
for that. we need to figure where to scale services etc if we randomly
create containers like that.
2021-01-21 17:41:22 -08:00
Girish Ramakrishnan ed395d74bc rebuild if service not found 2021-01-21 17:41:16 -08:00
Girish Ramakrishnan 47a598a494 rename getService to getServiceStatus 2021-01-21 12:40:41 -08:00
Girish Ramakrishnan d294dea84d rename getServices to getServiceIds 2021-01-21 12:38:12 -08:00
Girish Ramakrishnan 304fe45ee8 getServicesConfig -> getServiceConfig
it gets setting of a single service. the settings API returns multiple
ones, so it makes sense to call that one getServicesConfig
2021-01-21 12:22:06 -08:00
Girish Ramakrishnan 0edb673dc6 rename platform config to services config 2021-01-21 12:19:57 -08:00
Girish Ramakrishnan cd1b46848e Fix bug where graphite and sftp are not incrementally upgraded 2021-01-21 12:00:23 -08:00
Girish Ramakrishnan 6bd87485c6 rename addons.js to services.js
services is the named container (services view)
addons is more like a heroku concept
2021-01-21 11:31:35 -08:00
Girish Ramakrishnan d5952fafc3 Update changes 2021-01-20 20:32:22 -08:00
Girish Ramakrishnan 7660e90d51 read ratio from swap-ratio 2021-01-20 20:20:00 -08:00
Girish Ramakrishnan 4d482d11ee add apps.getMemoryLimit 2021-01-20 19:16:21 -08:00
Girish Ramakrishnan a14dbbe77a refactor into docker.update 2021-01-20 18:58:23 -08:00
Girish Ramakrishnan 0d535d2d5c allocate swap size for containers based on system ratio 2021-01-20 18:41:51 -08:00
Girish Ramakrishnan 7b24239d38 update the service config in addons code 2021-01-20 11:10:50 -08:00
Girish Ramakrishnan 1c5d56c28f remove note on memory/swap split 2021-01-20 09:17:05 -08:00
Girish Ramakrishnan 10d7c47576 Fix typo 2021-01-19 19:58:44 -08:00
Girish Ramakrishnan 370f8d7cad memorySwap/memory is now just a single memoryLimit 2021-01-19 19:48:33 -08:00
Girish Ramakrishnan 025eb18411 Use a single memoryLimit instead of memory and memorySwap
We will make the percent allocation dynamic depending on the system.

When we have servers with a large amount of RAM but little swap, we
seem to use a lot of swap because of 50% allocation strategy. In such
systems, we run out of swap and thus have OOM errors even though there
is a lot of RAM available!
2021-01-19 19:43:41 -08:00
Girish Ramakrishnan 24db6630ee platform config settings route is obsolete (now under services) 2021-01-19 19:35:06 -08:00
Girish Ramakrishnan 0930683366 Fix failing tests 2021-01-19 19:35:06 -08:00
Girish Ramakrishnan 67bdf47ef6 rename hostname to vhost to make the code less magical 2021-01-19 14:09:31 -08:00
Girish Ramakrishnan de869b90ee replace * in alias domain with _ for better filenames
this is similar to what we do for cert filenames
2021-01-19 13:36:31 -08:00
Johannes Zellner a33e662c47 Swap description and select in owner transfer dialog 2021-01-19 22:27:55 +01:00
Johannes Zellner d881dd6228 Update translations 2021-01-19 22:26:50 +01:00
Johannes Zellner 43c0cd034c revert owner transfer flow to avoid too many action buttons 2021-01-19 22:26:43 +01:00
Girish Ramakrishnan 9e2f52caef Add changes 2021-01-19 08:51:20 -08:00
Johannes Zellner b06432824c Add netcup dns provider
Fixes #763
2021-01-19 16:17:10 +01:00
Johannes Zellner 8fa890e0d0 Update translations 2021-01-19 16:13:30 +01:00
Johannes Zellner 98f6871d8b Add netcup dns provider 2021-01-19 10:53:05 +01:00
Girish Ramakrishnan 07642f0c56 make multiDomain a boolean 2021-01-18 23:01:39 -08:00
Girish Ramakrishnan f17899d804 allow wilcard in alias domains 2021-01-18 22:59:31 -08:00
Girish Ramakrishnan 88cd857f97 rename main to primary 2021-01-18 22:31:10 -08:00
Girish Ramakrishnan fa1104fd75 update translations 2021-01-18 19:44:44 -08:00
Girish Ramakrishnan 2e17e444aa Add domain alias UI 2021-01-18 18:02:06 -08:00
Girish Ramakrishnan 195fb198dd implement domain aliases 2021-01-18 17:34:39 -08:00
Girish Ramakrishnan ad2219dd43 merge subdomain query into main query 2021-01-18 15:27:42 -08:00
Girish Ramakrishnan 55eb999821 Add to changes 2021-01-17 18:18:27 -08:00
Girish Ramakrishnan 7835785aac Fix incorrect app password filter 2021-01-17 18:17:54 -08:00
Johannes Zellner 3a031064fb Add italian and chinese translation, since they are over 60% done 2021-01-17 20:24:02 +01:00
Johannes Zellner 83e425dccc Update translations 2021-01-17 20:23:12 +01:00
Girish Ramakrishnan aedc8e8087 do not send flurry of down notification on box restart 2021-01-16 11:27:19 -08:00
Girish Ramakrishnan de7d27cd08 more module updates 2021-01-16 10:05:24 -08:00
Girish Ramakrishnan e4c7985e10 update many modules 2021-01-16 10:03:57 -08:00
Johannes Zellner fbcfa647ef Add basic owner transfer test 2021-01-15 21:13:13 +01:00
Girish Ramakrishnan 953c65788c mail: haraka update 2021-01-15 11:22:27 -08:00
Johannes Zellner 1b09a80caa Use new ownership transfer route 2021-01-15 14:28:52 +01:00
Johannes Zellner b6473bc8f0 Add route to transfer ownership 2021-01-15 14:28:41 +01:00
Johannes Zellner a5cdd6087a Revert "To allow transfer ownership, a user has to be able to update its role if permissions are granted by current role"
This reverts commit c2f8da5507.
2021-01-15 14:16:55 +01:00
Johannes Zellner 32d7b2fe34 Only show transfer ownership button for owner 2021-01-14 21:16:28 +01:00
Johannes Zellner 24ffe5ec26 change volume test paths to not easily conflict 2021-01-14 21:15:54 +01:00
Johannes Zellner c2f8da5507 To allow transfer ownership, a user has to be able to update its role if permissions are granted by current role 2021-01-14 21:15:54 +01:00
Johannes Zellner e0f6ddfcf7 Call rest api to transfer ownership 2021-01-14 20:47:30 +01:00
Johannes Zellner 2086444a9e Add dutch translation 2021-01-14 17:15:10 +01:00
Johannes Zellner 117b58fcbe Add initial UI for transferring ownership 2021-01-14 17:14:32 +01:00
Johannes Zellner 3d441748c4 Update translations 2021-01-14 17:14:12 +01:00
Johannes Zellner 7f3eae23a1 Add userRoles and userGroups comment for override 2021-01-14 16:49:26 +01:00
Girish Ramakrishnan dbf3d3abd7 mail: better event log for bounces 2021-01-13 23:12:14 -08:00
Girish Ramakrishnan 9ee4692215 updatechecker: clear box update after update is done 2021-01-13 17:10:07 -08:00
Girish Ramakrishnan 8392642f5f catch exception for custom hour 2021-01-13 17:09:55 -08:00
Girish Ramakrishnan e15639583d ensure box.update is actually valid 2021-01-13 17:09:55 -08:00
Johannes Zellner 2ae62957d4 Do not translate subscription strings in user view 2021-01-13 16:54:25 +01:00
Johannes Zellner 126f5e761b Ensure we have some default values for userRoles and adminMaxCount 2021-01-13 16:29:25 +01:00
Johannes Zellner 9678b7d966 Restrict user roles 2021-01-13 16:19:14 +01:00
Johannes Zellner 896f55f6d3 Add user group subscription dialog 2021-01-13 15:03:26 +01:00
Johannes Zellner 74faa29012 Restrict user groups 2021-01-13 14:49:23 +01:00
Johannes Zellner 6874792670 Ensure features.userGroups has a default value 2021-01-13 14:48:58 +01:00
Johannes Zellner 6b3b4eb8b3 Use correct error variable 2021-01-13 12:33:40 +01:00
Girish Ramakrishnan 5fc8a50ae1 more caas code removal 2021-01-12 19:49:20 -08:00
Girish Ramakrishnan ee68315e70 make email view content larger 2021-01-12 19:38:35 -08:00
Girish Ramakrishnan d16d8729c0 Add refresh button in mail eventlog 2021-01-12 19:30:30 -08:00
Girish Ramakrishnan b28fb72670 function name has changed 2021-01-12 19:22:18 -08:00
Girish Ramakrishnan d67598ab7e turn: use correct base image 2021-01-12 17:06:48 -08:00
Girish Ramakrishnan d8fd6be832 turn: fix for CVE-2020-26262 2021-01-12 17:03:30 -08:00
Girish Ramakrishnan 1b6e157525 Add federated section 2021-01-12 09:25:52 -08:00
Johannes Zellner 383147b26a Fixup linter issues in filemanager.js 2021-01-12 14:29:04 +01:00
Johannes Zellner 6ede67512d Add .jshintrc 2021-01-12 14:28:54 +01:00
Girish Ramakrishnan a5dc65bda7 blacklist couchpotato on demo 2021-01-11 22:29:21 -08:00
Girish Ramakrishnan 6c8be9a47a add sickchill to demo blacklist 2021-01-11 22:04:12 -08:00
Girish Ramakrishnan 1a5fc894d6 Fix proxyAuth nginx config 2021-01-11 21:52:41 -08:00
Johannes Zellner 57b19457e4 Handle ctrl/cmd + s for saving in filemanager editor 2021-01-11 16:15:01 +01:00
Girish Ramakrishnan 7f324793b5 typo 2021-01-10 11:31:25 -08:00
Girish Ramakrishnan 0735353ab4 cloudron-setup: add --env unstable
this installs the latest unstable code but with prod appstore
2021-01-10 11:26:17 -08:00
Johannes Zellner 6ff2c5f757 Add apparmor as install dependency
Some hetzner images do not include that by default
2021-01-10 20:00:51 +01:00
Girish Ramakrishnan 29ab352846 proxyAuth: add exclusion path
had to move the ~ login/logout regexp inside. This is because of
https://www.ruby-forum.com/t/proxy-pass-location-inheritance/239135

What it says is that a regexp inside a matching location prefix is
given precedence regardless of how it appears in the file. This means
that the negative regexp got precedence over login|logout and thus
went into infinite redirect. By moving it to same level, the regexps
are considered in order.

Some notes on nginx location:

* First, it will match the prefixes (= and the /). If =, the matching stops.
  If /xx then the longest match is "remembered"
* It will then match the regex inside the longest match. First match wins
* It will then match the rest of the regex locations. First match win
* If no regex matched, it will then do the remembered longest prefix

fixes #762
2021-01-08 21:16:49 -08:00
Girish Ramakrishnan 4a6f36bc0e make the notfound page customizable
fixes #755
2021-01-08 11:02:09 -08:00
Girish Ramakrishnan 0ef0c77305 rename splash to notfound
part of #755
2021-01-08 10:13:01 -08:00
Girish Ramakrishnan 9a41594ec3 rename splash to notfound.html
part of cloudron/box#755
2021-01-08 09:37:38 -08:00
Girish Ramakrishnan 05c331172a Fix test 2021-01-07 22:21:41 -08:00
Girish Ramakrishnan b5ef4e0e6d make copy of aliases array 2021-01-07 22:07:20 -08:00
Girish Ramakrishnan 2414b44b6d Add to changes 2021-01-07 22:03:19 -08:00
Girish Ramakrishnan ca53449141 mailbox: list mailbox with alias info with a self join
fixes #738
2021-01-07 22:03:19 -08:00
Girish Ramakrishnan d7a2732dc6 use the new mailbox API that has aliases
part of cloudron/box#738
2021-01-07 22:02:26 -08:00
Girish Ramakrishnan f594abaa71 domains: add wellknown ui
fixes cloudron/box#703
2021-01-07 19:54:51 -08:00
Girish Ramakrishnan 9c35be2fdc updated translations 2021-01-07 19:32:04 -08:00
Johannes Zellner 79bd284179 Ensure cloudron name cannot be longer than 64 2021-01-07 22:52:57 +01:00
Johannes Zellner 9342b2f0e3 Increase cloudron name to 64 2021-01-07 22:49:52 +01:00
Johannes Zellner 8e6ceb2e66 Add sshfs/cifs/nfs to restore ui 2021-01-07 19:41:39 +01:00
Johannes Zellner 07c9699895 Fix syntax error in angular template 2021-01-07 19:16:34 +01:00
Johannes Zellner af0d78e720 Do not error on form itself 2021-01-07 18:40:51 +01:00
Johannes Zellner 46dabee6ee Add sshfs/cifs/nfs backup storage to app import 2021-01-07 18:28:32 +01:00
Girish Ramakrishnan a723cee47f Add @ symbol 2021-01-06 22:20:09 -08:00
Girish Ramakrishnan d15aa68bd7 eventlog: only merge ldap login events (and not dashboard)
fixes #758
2021-01-06 22:09:37 -08:00
Girish Ramakrishnan bbf71d8e88 eventlog: logout event 2021-01-06 21:59:17 -08:00
Girish Ramakrishnan 624e34d02d eventlog: add logout
fixes #757
2021-01-06 21:57:56 -08:00
Girish Ramakrishnan af683b5fa4 add to changes 2021-01-06 21:47:48 -08:00
Girish Ramakrishnan f9c6c0102e mail: https://github.com/haraka/Haraka/pull/2893 2021-01-06 17:51:51 -08:00
Girish Ramakrishnan f71fbce249 mail: do not send client certs 2021-01-06 17:08:26 -08:00
Girish Ramakrishnan a184012205 apptask: set the memory limit based on the backup config
fixes #759
2021-01-06 15:26:51 -08:00
Girish Ramakrishnan 3bf50af09a mail: update haraka 2021-01-06 11:43:49 -08:00
Girish Ramakrishnan 29c513df78 apt: do not install recommended packages, only deps 2021-01-04 23:30:41 -08:00
Girish Ramakrishnan d2e03c009a redis: remove dead code 2021-01-04 19:36:43 -08:00
Girish Ramakrishnan a541c0e048 Fix installation on atlantic.net 2021-01-04 17:56:14 -08:00
Girish Ramakrishnan 0867924a01 graphs: show the volume usage
part of cloudron/box#756
2021-01-04 15:14:30 -08:00
Girish Ramakrishnan ead832ac73 volumes: collect du data
part of #756
2021-01-04 15:14:00 -08:00
Girish Ramakrishnan 370485eee6 avatar: use copy instead of rename
this is safer since rename() might fail with EXDEV on some servers
if /tmp and /home are on different filesystems.
2021-01-04 07:51:10 -08:00
Girish Ramakrishnan f3165c4e3b installer: move unzip to base image 2021-01-03 15:09:58 -08:00
Girish Ramakrishnan a8187216af installer: ipset is now in base image 2021-01-03 15:08:44 -08:00
Girish Ramakrishnan cf79e7f1ec Do not install xorg-server package
~# aptitude why xserver-xorg
i   collectd    Recommends libnotify4 (>= 0.7.0)
i A libnotify4  Recommends gnome-shell | notification-daemon
i A gnome-shell Recommends gdm3 (>= 3.10.0.1-3~)
i A gdm3        Recommends xserver-xorg
2021-01-03 14:53:47 -08:00
Girish Ramakrishnan 353369c1e9 mailer: make oom mail contain link to dashboard instead of docs 2021-01-02 12:26:34 -08:00
Girish Ramakrishnan 6507d95b98 rebuild mail container
https://github.com/haraka/Haraka/issues/2883
2021-01-02 12:12:08 -08:00
Girish Ramakrishnan 294413b798 Fix comment 2021-01-02 12:12:08 -08:00
Girish Ramakrishnan 51fd959e9d filemanager: better error message 2020-12-30 11:22:31 -08:00
Girish Ramakrishnan 8ddc72704e no need to bold version 2020-12-29 17:56:41 -08:00
Girish Ramakrishnan d1f9ae3df8 fix subject of the emails 2020-12-29 17:51:41 -08:00
Girish Ramakrishnan 28dee54a39 updates: only send email notifications when not auto-updating
fixes #749
2020-12-29 17:47:51 -08:00
Girish Ramakrishnan ff5702efc3 Better error message 2020-12-29 17:40:01 -08:00
Girish Ramakrishnan 663e0952fc move wellKnownJson to domains
after some more thought:
* If app moves to another location, user has to remember to move all this config
* It's not really associated with an app. It's to do with the domain info
* We can put some hints in the UI if app is missing.

part of #703
2020-12-23 17:13:22 -08:00
Girish Ramakrishnan 8a17e13ec4 automate wellknown setup
the main reason this is under app and not domain is because it let's
the user know that an app has to be installed for the whole thing to work.

part of #703
2020-12-23 15:20:53 -08:00
Girish Ramakrishnan a8436f8784 Fix external ldap test 2020-12-22 16:57:21 -08:00
Girish Ramakrishnan 93313abf33 test: emails are not sent anymore 2020-12-22 16:38:30 -08:00
Girish Ramakrishnan 246956fd0e groupMembers: add unique constraint
fixes #696
2020-12-22 16:18:15 -08:00
Girish Ramakrishnan b2fe43184c more changes 2020-12-22 10:13:17 -08:00
Girish Ramakrishnan 26662b9ed9 dashboard: if access_token is provided, automatically attempt login
fixes cloudron/box#747
2020-12-22 10:04:37 -08:00
Girish Ramakrishnan 29f7b771a1 add setup_token to setup and restore
part of cloudron/box#751
2020-12-21 23:59:30 -08:00
Girish Ramakrishnan 7bdeaca75b secure the provision and activation routes with a token
fixes #751
2020-12-21 23:33:31 -08:00
Girish Ramakrishnan e905c1edbe make function a bit more readable 2020-12-21 18:07:39 -08:00
Girish Ramakrishnan 88f24afae6 assume code 1 task 9 is oom
Fixes #750
2020-12-21 18:07:21 -08:00
Girish Ramakrishnan 33fb093aeb remove extra arg 2020-12-21 15:30:15 -08:00
Girish Ramakrishnan ac6c9e9b15 hasSubscription is always true
dashboard has logic for showing popup
2020-12-21 15:25:24 -08:00
Girish Ramakrishnan de5c1ca1cf update object has changed
part of cloudron/box#749
2020-12-21 12:49:21 -08:00
Girish Ramakrishnan df5a333f30 add version to the updatechecker file 2020-12-21 12:41:23 -08:00
Girish Ramakrishnan 65290e52f7 persist update indicator across restarts
part of #749
2020-12-21 12:36:02 -08:00
Girish Ramakrishnan 9683bb6408 remove email notification for user add/remove
it's just very noisy. we anyway raise notifications
2020-12-21 08:45:18 -08:00
Girish Ramakrishnan e5209a1392 fix some typos 2020-12-20 14:41:16 -08:00
Girish Ramakrishnan 94040cf3f9 proxyauth: Enable 2fa
part of cloudron/box#748
2020-12-20 13:25:42 -08:00
Girish Ramakrishnan 56707ac86a proxyauth: add 2fa
Fixes #748
2020-12-20 13:14:21 -08:00
Girish Ramakrishnan 2e187ce012 Fix the for 2020-12-20 13:03:51 -08:00
Girish Ramakrishnan 71e4b687b9 lint 2020-12-20 13:02:58 -08:00
Girish Ramakrishnan dd3522a34c filemanager: show host path for volumes as root label 2020-12-20 12:58:09 -08:00
Girish Ramakrishnan 64a4b712cc proxyAuth: add a hack to invalidate cache
when user goes to /logout and then goes to /, the browser will
serve up the cached / based on cache-control. This might make the
user believe they are not logged out.

fixes #753
2020-12-19 22:09:14 -08:00
Girish Ramakrishnan 3ccd527c8b acme2: fix logs 2020-12-19 16:24:56 -08:00
Girish Ramakrishnan 85d37233a2 proxyAuth: redirect to /login when logout
part of #753
2020-12-19 14:49:34 -08:00
Girish Ramakrishnan eff9d378e5 nfs: chown the backups for hardlinks to work 2020-12-18 17:14:42 -08:00
Girish Ramakrishnan 0f9a5c6b9a nfs: is prefix is empty, it errors 2020-12-18 14:41:59 -08:00
Johannes Zellner 0bed8c89f6 Ensure catchall uses the same origin array as the dropdown model
Otherwise angular would not reliably detect the same objects
2020-12-18 16:56:11 +01:00
Girish Ramakrishnan a20bcbd570 mail: update haraka to 2.8.26 2020-12-17 17:57:19 -08:00
Girish Ramakrishnan 583c544cae regenerate nginx config when proxyAuth changes 2020-12-17 10:25:23 -08:00
Johannes Zellner 98ac637ada Add one more missing translation 2020-12-16 17:31:24 +01:00
Girish Ramakrishnan f55300eba5 reduce DO spaces copy part size 2020-12-15 14:37:18 -08:00
Girish Ramakrishnan 82e77d36a6 make it 12 for aesthetics 2020-12-15 13:49:05 -08:00
Johannes Zellner b0f9ba5483 Fix missing network view translations 2020-12-15 17:31:03 +01:00
Johannes Zellner 39b50b2aa9 Make category button translatable in appstore 2020-12-15 15:58:13 +01:00
Johannes Zellner 4170bf3a7a Add dutch language name 2020-12-15 15:51:10 +01:00
Johannes Zellner 632bb64b96 Add missing translations for apps grid 2020-12-15 15:48:25 +01:00
Johannes Zellner a33760a688 Show actual real /app/data/ path in filemanger 2020-12-15 10:39:19 +01:00
Girish Ramakrishnan a68ddcbbc4 Fix progress message 2020-12-14 19:58:44 -08:00
Girish Ramakrishnan 0723b7d672 reduce copy concurrency to keep most providers happy 2020-12-14 17:26:44 -08:00
Girish Ramakrishnan f5ed17e3d8 add ack flag to the debug 2020-12-14 16:07:09 -08:00
Girish Ramakrishnan 5ecf457a35 proxy auth: be explicit it is a 302 (default) 2020-12-13 13:24:59 -08:00
Girish Ramakrishnan 79a7e5d4a1 Also blacklist transmission on the demo 2020-12-13 12:36:13 -08:00
Johannes Zellner 0abddd8665 Improve some elements in darkmode 2020-12-10 17:10:27 +01:00
Girish Ramakrishnan 7d157b9343 Various 6.0.2 changes 2020-12-09 22:03:18 -08:00
Girish Ramakrishnan 1dc1cb92b9 Display the appstore id 2020-12-09 17:27:22 -08:00
Girish Ramakrishnan 67ccb180c9 update: set/unset appStoreId from the update route 2020-12-09 16:51:49 -08:00
Girish Ramakrishnan 822964116f remove dead code
appStoreId is never set to be cleared
2020-12-09 16:47:58 -08:00
Johannes Zellner 0adcc2af4f Do not follow redirects in authproxy login
Since we redirect on the server already on success, the fetch() would
follow that and handle whatever response from the upstream app is
delivered.
2020-12-09 14:11:27 +01:00
Johannes Zellner 24397aa25e Fix appstore category icon padding 2020-12-09 12:16:00 +01:00
Johannes Zellner fbaa3ad15f Add appstore category translations 2020-12-09 12:15:08 +01:00
Girish Ramakrishnan 360c3112ef use docker.inspect 2020-12-08 11:42:00 -08:00
Girish Ramakrishnan f2fba18860 scheduler: fix crash when container already exists 2020-12-08 11:36:57 -08:00
Girish Ramakrishnan aa2d357de5 Add media category 2020-12-08 10:58:22 -08:00
Johannes Zellner 397a2b8803 Always prepend the version to assets when sourcing to avoid cache hits on update 2020-12-08 15:38:02 +01:00
Johannes Zellner b63d1fa8e1 List volumes of the app in filemanager 2020-12-08 13:02:14 +01:00
Johannes Zellner 6590c06f5b Display upload size and size progress 2020-12-08 12:01:47 +01:00
Johannes Zellner b608859ef9 Avoid flickering of app actions when cursor is between grid items 2020-12-08 11:36:59 +01:00
Girish Ramakrishnan cae9921159 sftp: use docker.inspect instead 2020-12-07 22:27:33 -08:00
Girish Ramakrishnan f497d5d309 fix thp disable on kernels that have it disabled 2020-12-07 11:38:11 -08:00
Johannes Zellner c9ae24cf62 Show app restart status as a banner in filemanager 2020-12-07 20:13:05 +01:00
Johannes Zellner e1f5fea303 Add logs, terminal and restart action to filemanager 2020-12-07 19:49:53 +01:00
Girish Ramakrishnan 51a165dc7a add changes 2020-12-07 00:04:14 -08:00
Girish Ramakrishnan 9d4082356b mail: on location change, ignore error if dns cannot be updated 2020-12-07 00:02:56 -08:00
Girish Ramakrishnan 3b8bc47ee5 Set and clear timeout for external requests
otherwise, the server crashes for a write after timeout
2020-12-06 23:31:57 -08:00
Girish Ramakrishnan 8ef05c850d mail: Do not query settings per domain 2020-12-06 23:31:29 -08:00
Girish Ramakrishnan 78752fde7a app: add export route
Currently, the export route only creates the snapshot (the other side
of in-place import). In the future, the export route can export to a
custom backup config (like import).
2020-12-06 19:57:26 -08:00
Girish Ramakrishnan 05a558165a missing space 2020-12-06 11:32:09 -08:00
Girish Ramakrishnan 68c36ca353 add note on the ts/creationDate fields 2020-12-06 11:32:05 -08:00
Girish Ramakrishnan c6fd922fcd Blacklist adguard on the demo 2020-12-04 23:01:47 -08:00
Girish Ramakrishnan e90a211820 use REPLACE to ensure the key is inserted 2020-12-04 18:49:03 -08:00
Girish Ramakrishnan 8529485837 sftp: require admin by default (breaking change) 2020-12-04 18:45:52 -08:00
Girish Ramakrishnan 6c79aaae49 fts: immediately show status in ui 2020-12-04 15:51:36 -08:00
Girish Ramakrishnan 6810d823f5 collectd(df): convert byte string to string
this makes the graphs work
2020-12-04 12:10:59 -08:00
Girish Ramakrishnan 3e62f1913a acme2: issuer name has changed
There is now Let's Encrypt R3 and Let's Encrypt R4 etc

https://scotthelme.co.uk/lets-encrypts-new-root-and-intermediate-certificates/
2020-12-04 11:48:45 -08:00
Girish Ramakrishnan d23662c464 acme2: better logs 2020-12-04 11:47:19 -08:00
Girish Ramakrishnan 922c1ea317 acme2: fix error messages 2020-12-04 11:42:18 -08:00
Girish Ramakrishnan 258d81d7e9 mongo: bring mem limit in-line with others 2020-12-04 11:04:21 -08:00
Girish Ramakrishnan 1363e02603 graphite: bump up memory limit 2020-12-04 10:59:06 -08:00
Girish Ramakrishnan ccc65127f1 volumes: fix upload limit 2020-12-04 10:35:51 -08:00
Girish Ramakrishnan 35ba5fc766 show spinner for some time 2020-12-04 10:23:29 -08:00
Johannes Zellner 6d32ab6095 Rework the filemanager toolbar to not overflow with long paths 2020-12-04 19:06:08 +01:00
Johannes Zellner ed96c83953 decode foldernames in breadcrumb 2020-12-04 18:39:10 +01:00
Johannes Zellner 7108d0fe31 Pull in solr related German translation updates 2020-12-04 17:41:13 +01:00
Johannes Zellner bc4bce6db5 Put services reset to standard memory where it belongs 2020-12-04 17:36:38 +01:00
Johannes Zellner c9fd832af1 Use the same icon for filemanager buttons 2020-12-04 13:58:46 +01:00
Johannes Zellner fa54de2960 Update file size after save in filemanager 2020-12-04 13:53:08 +01:00
Johannes Zellner 58a60d3bd5 Set filemanager document title dynamically to indicate open app 2020-12-04 12:08:42 +01:00
Johannes Zellner 3dd8642a60 Do not show hostpath in volume mount dropdown 2020-12-04 11:35:01 +01:00
Girish Ramakrishnan 734542b3c4 redis: logs 2020-12-04 00:45:53 -08:00
Girish Ramakrishnan 3b38bb5d33 sftp: requireAdmin is true by default
for existing installs, it is off for backward compatibility
2020-12-04 00:25:37 -08:00
Girish Ramakrishnan 59c51c5747 volume: hostPath must exist on server 2020-12-03 23:13:20 -08:00
Girish Ramakrishnan ca17afc734 volumes: better hostPath validation 2020-12-03 23:05:06 -08:00
Girish Ramakrishnan 0b537fe163 error text: port is in use and not reserved 2020-12-03 22:27:59 -08:00
Girish Ramakrishnan 2a32bf3fc7 Add to changes 2020-12-03 21:58:27 -08:00
Girish Ramakrishnan 89e62541b5 Link back to our docs and not to some github page 2020-12-03 21:57:41 -08:00
Girish Ramakrishnan 57c4d47657 Remove obsolete code 2020-12-03 17:36:32 -08:00
Girish Ramakrishnan 0371fe19ab Add back cn existence check 2020-12-03 13:35:50 -08:00
Girish Ramakrishnan 3de8fd5d92 fix issue where apps can sendmail with any username
a valid password is still required for this to work
2020-12-03 13:06:08 -08:00
Girish Ramakrishnan ce86cb892d the ip is now available in the appdb 2020-12-03 11:48:25 -08:00
Girish Ramakrishnan 9789ae3374 Remove redundant check 2020-12-03 11:46:57 -08:00
Girish Ramakrishnan e508893dcc mail: use env var to check if solr is enabled 2020-12-02 21:15:42 -08:00
Girish Ramakrishnan 699f04c9ff mail: disable solr if not enough memory 2020-12-02 17:56:49 -08:00
Girish Ramakrishnan cf620ee355 Disable solr if not enough memory 2020-12-02 17:45:24 -08:00
Girish Ramakrishnan 7269e2c64f Display solr status 2020-12-02 17:16:59 -08:00
Girish Ramakrishnan 89c82fb001 send the raw healthcheck as part of status call 2020-12-02 17:07:33 -08:00
Girish Ramakrishnan 357d4d72d7 Update solr text 2020-12-02 16:56:17 -08:00
Girish Ramakrishnan cd3fbda09c Show spinner when solr config is toggled 2020-12-02 16:48:20 -08:00
Girish Ramakrishnan b7fed04c12 roll back ldapjs
There is a crash upstream - https://github.com/ldapjs/node-ldapjs/pull/686
2020-12-02 14:50:03 -08:00
Girish Ramakrishnan 0ec5714271 Add to changes 2020-12-02 09:46:13 -08:00
Johannes Zellner 9b8d8ed544 And more overflow fixes 2020-12-02 18:32:49 +01:00
Johannes Zellner 424f6b2b1b Fix more overflow issues in settings view 2020-12-02 18:29:02 +01:00
Johannes Zellner 709a12e74c Add china S3 regions 2020-12-02 18:20:58 +01:00
Johannes Zellner 46ffcdbf75 Fix overflow issue 2020-12-02 17:57:15 +01:00
Girish Ramakrishnan 5e483e4f3a delete any solr index when removing mailbox 2020-12-02 00:26:38 -08:00
Girish Ramakrishnan 84374b955e mail fts: enable prefix search 2020-12-01 23:45:55 -08:00
Girish Ramakrishnan 3a25c8da9f remove old code 2020-12-01 22:49:59 -08:00
Girish Ramakrishnan 5a5983cf96 mail: add solr to mail status 2020-12-01 22:45:33 -08:00
Girish Ramakrishnan 71c44a4c44 mail: only enable shared mailboxes when / is separator 2020-12-01 13:02:24 -08:00
Girish Ramakrishnan 41053d6857 validate backup folder and prefix 2020-12-01 12:46:02 -08:00
Johannes Zellner 847751e3e0 Update german translation 2020-12-01 16:50:55 +01:00
Johannes Zellner 54724e209a Do not add basically empty french and italien translation by default for now 2020-12-01 16:50:33 +01:00
Girish Ramakrishnan d5ab13a00e Enable download for directories
downloads as zip
2020-11-30 10:27:45 -08:00
Girish Ramakrishnan 4287642308 firewall: add udp ports to allowed list 2020-11-30 10:26:39 -08:00
Johannes Zellner 529d445d06 Make reboot dialog translatable 2020-11-30 10:57:42 +01:00
Girish Ramakrishnan 3934e59bd3 filemanager: allow downloading dirs as zip 2020-11-29 16:28:10 -08:00
Girish Ramakrishnan 9080e5c3ab tests: do not require passphrase 2020-11-29 11:19:28 -08:00
Girish Ramakrishnan 3d5599cdd9 b2: reduce copy part size
'Error copying snapshot/app_8b22dc8f-3e15-4314-8108-bcf1908a24df.tar.gz.enc (482405284 bytes): InternalError InternalError: too busy to complete copy - please try again' }
2020-11-29 11:16:05 -08:00
Girish Ramakrishnan 138d01e755 mail: acl update for getting shared mailboxes to show correctly 2020-11-28 16:30:12 -08:00
Girish Ramakrishnan 213ce114e3 disable thp
https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/

redis complains loudly and this oftens results in support requests
2020-11-28 16:30:04 -08:00
Girish Ramakrishnan ad8b9cfc9f mail: enable acl 2020-11-27 18:14:49 -08:00
Girish Ramakrishnan de400dd652 mail: update mail container to remove explicit utf-8 on disk encoding 2020-11-26 22:42:11 -08:00
Girish Ramakrishnan 6218ee30a7 proxyAuth: inject CLOUDRON_PROXY_AUTH 2020-11-26 15:04:25 -08:00
Girish Ramakrishnan 976f072ef4 sftp: ubuntu 20 requires keys in legacy format 2020-11-26 11:53:28 -08:00
Girish Ramakrishnan f4762be58b add TODO 2020-11-25 22:25:36 -08:00
Girish Ramakrishnan 1b92ce08aa scheduler: suspend/resume jobs when apptask is active
the cron job container was holding on to the volume any container changes.
2020-11-25 22:16:38 -08:00
Girish Ramakrishnan 1d3d8288a9 unbound does not depend on box 2020-11-25 18:31:30 -08:00
Girish Ramakrishnan eec54e93bf Need nginx 1.18.0-2 for fresh ubuntu 16 installs
it fails with missing /run/nginx.pid message
2020-11-25 17:57:58 -08:00
Girish Ramakrishnan 77b965cada Add DNS to app containers as well
infra has to be bumped since we removed httpPort and moved to containerIp
2020-11-25 12:04:59 -08:00
Girish Ramakrishnan bcc9eda66c Remove ununsed constant 2020-11-25 10:33:40 -08:00
Girish Ramakrishnan 3a0b9d7b3b turn: add note 2020-11-25 10:19:01 -08:00
Girish Ramakrishnan e511b70d8f bring back resolvconf and unbound DNS
bd9c664b1a tried to remove it and use
the system resolver. However, we found that debian has a quirk that it adds
it adds the fqdn as 127.0.1.1. This means that the docker containers
resolve the my.example.com domain to that and can't connect.

This affects any apps doing a turn test (CLOUDRON_TURN/STUN_SERVER)
and also apps like SOGo which use the mail server hostname directly (since
they require proper certs).

https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_hostname_resolution

So, the solution is to go back to unbound, now that port 53 binding is specially
handled anyway in docker.js
2020-11-25 10:02:43 -08:00
Johannes Zellner 72f6a3213e Fixup some translation issues in the backups view 2020-11-25 18:29:15 +01:00
Johannes Zellner ec32711e7e Ensure backup settings don't overflow in the info box 2020-11-25 16:36:55 +01:00
Girish Ramakrishnan 25cc60e648 mail: change the namespace separator to / 2020-11-24 12:55:58 -08:00
Johannes Zellner 764fe92f1b translatable proxyauth login page 2020-11-24 20:58:10 +01:00
Johannes Zellner d1e05dcb6f Make proxyauth login translatable 2020-11-24 20:57:13 +01:00
Johannes Zellner 68a9170251 One more dialog cancel translation missing 2020-11-24 19:52:24 +01:00
Johannes Zellner 1581b5bbfd Add missing app listing action tooltips 2020-11-24 19:08:17 +01:00
Johannes Zellner 7e0bd28bc2 Add missing translation for task rety and fix an issue in the retry button 2020-11-24 19:00:16 +01:00
Johannes Zellner 06b25501a0 German volume translation 2020-11-24 15:12:01 +01:00
Girish Ramakrishnan 6be1d3bacb mailbox: disable save button with no owner 2020-11-23 21:22:15 -08:00
Girish Ramakrishnan c211428897 add info on where volume is mounted 2020-11-23 17:25:13 -08:00
Girish Ramakrishnan 786a1d0c2a move volume description from apps to volumes view 2020-11-23 17:10:40 -08:00
Girish Ramakrishnan 8cfd859711 mail: make eventlog search also searches type field
Fixes #740
2020-11-23 16:22:16 -08:00
Johannes Zellner dcecd166d0 Translate the volume view 2020-11-23 22:13:54 +01:00
Johannes Zellner ba59fbac48 Fix typo in translation id 2020-11-23 18:03:26 +01:00
Johannes Zellner c704129975 Fix translation for user roles 2020-11-23 17:25:47 +01:00
Johannes Zellner 259d70c63e Fixup translation if disk info is not yet available 2020-11-23 16:47:09 +01:00
Johannes Zellner e438e8e9ac Make user search translatable 2020-11-23 16:34:48 +01:00
Johannes Zellner e8091cb5f3 robots indexing action was not translated 2020-11-23 16:29:48 +01:00
Johannes Zellner 949ec91cc8 Fix overlooked save buttons for translation 2020-11-23 16:27:51 +01:00
Johannes Zellner bc62eaef90 Try to not overflow as quickly 2020-11-23 16:24:55 +01:00
Johannes Zellner 6e1b5cacd6 Move some input errors below the input field 2020-11-23 12:54:34 +01:00
Johannes Zellner 7f57c18444 Fix app location overflow in header 2020-11-23 12:34:19 +01:00
Johannes Zellner 3579992f62 Fix overflow on app task error 2020-11-23 12:30:39 +01:00
Johannes Zellner 3b7ec409e9 Add volume description and warning text 2020-11-23 11:53:20 +01:00
Johannes Zellner d885bfa93f German translation is now mostly done 2020-11-23 11:36:40 +01:00
Girish Ramakrishnan 7b3b826f87 DNS fixes that work on all ubuntu versions 2020-11-23 00:27:17 -08:00
Girish Ramakrishnan 195c9bd81f check the type of userIds array 2020-11-22 21:42:08 -08:00
Girish Ramakrishnan a8928d26d1 Fix appdb get query
the get() query was wrong when we had multiple port bindings.

we did apps JOIN X JOIN Y JOIN Z. This will return apps times x times y times z rows.
this just accidentally worked in the past. when we have multiple mounts,
we get duplicate values now.

the fix is do the joins separately and then merge them together.

an alternate approach to this mega query is to SET TRANSACTION SERIALIZABLE and do
multiple selects. but that requires database.js support which is a bit of work (and not
sure how it works with "connections").
2020-11-22 16:03:41 -08:00
Johannes Zellner c0f4f8979a Pull in more german translations 2020-11-22 10:58:47 +01:00
Johannes Zellner ef287d4436 fix language test
Ideally we would use a copy of the dashboard, either way we kinda have
to rely on repo layouts to find it
2020-11-22 10:34:35 +01:00
Girish Ramakrishnan 6ae1de6989 test: make apps test work 2020-11-21 23:25:28 -08:00
Girish Ramakrishnan 9c810ce837 hack to make translation tests pass 2020-11-21 23:07:30 -08:00
Girish Ramakrishnan ba913bb949 another console.error to debug 2020-11-21 18:32:38 -08:00
Girish Ramakrishnan 58487b729a use debug since it floods the test logs 2020-11-21 18:28:45 -08:00
Girish Ramakrishnan bf73cbaf97 test: make the certs test pass again
generate certs for next 10 years
2020-11-21 18:17:37 -08:00
Girish Ramakrishnan 1db868bf9c httpPaths: add trailing slash to proxy_pass
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass

"If the proxy_pass directive is specified with a URI, then when a request
is passed to the server, the part of a normalized request URI matching the
location is replaced by a URI specified in the directive"
2020-11-21 14:37:39 -08:00
Girish Ramakrishnan d331597bff proxyAuth: allow protecting specific subpath
while I don't think this is useful for apps, it is useful for e2e test atleast
2020-11-20 18:29:55 -08:00
Girish Ramakrishnan 71648d92ae proxyAuth: authorization logic 2020-11-20 17:54:17 -08:00
Girish Ramakrishnan 735485b539 rename variable 2020-11-20 17:52:22 -08:00
Girish Ramakrishnan 09c8248e31 move back docker network creation to start.sh
dockerproxy and unbound rely on it.
2020-11-20 17:22:57 -08:00
Girish Ramakrishnan c0b0029935 statically allocate app container IPs
We removed httpPort with the assumption that docker allocated IPs
and kept them as long as the container is around. This turned out
to be not true because the IP changes on even container restart.

So we now allocate IPs statically. The iprange makes sure we don't
overlap with addons and other CI app or JupyterHub apps.

https://github.com/moby/moby/issues/6743
https://github.com/moby/moby/pull/19001
2020-11-20 16:19:59 -08:00
Johannes Zellner 64af278f39 add missing curly brackets 2020-11-21 00:13:07 +01:00
Johannes Zellner 728aa9dc35 Pull in some more German translations 2020-11-20 22:46:45 +01:00
Johannes Zellner 57dabbfc69 Translate welcome and password reset email subjects 2020-11-20 22:38:52 +01:00
Girish Ramakrishnan 279f7a80c5 make appstatus work again for apps 2020-11-20 12:04:58 -08:00
Girish Ramakrishnan b66fdb10f2 apptask: Use debugApp 2020-11-20 11:21:06 -08:00
Johannes Zellner 38fc329b9f Use language names for selectors 2020-11-20 18:09:09 +01:00
Johannes Zellner f252b01ae2 Add password reset mail translations 2020-11-20 16:23:13 +01:00
Johannes Zellner 84c1703c1a Translate password reset email 2020-11-20 16:18:24 +01:00
Johannes Zellner 2c29eecc22 Add welcome mail translations 2020-11-20 16:10:36 +01:00
Johannes Zellner f324d50cef Translate welcome mail 2020-11-20 16:10:13 +01:00
Johannes Zellner 93a1e6fca8 Avoid translation file caching 2020-11-20 16:10:13 +01:00
Girish Ramakrishnan 4d55783ed8 unbound: start it after docker 2020-11-19 23:22:11 -08:00
Girish Ramakrishnan aad50fb5b2 add routes to get/set solr config 2020-11-19 20:19:24 -08:00
Girish Ramakrishnan 3125e1b386 get/set solr config 2020-11-19 20:05:13 -08:00
Johannes Zellner fb4ba5855b Make emails translatable 2020-11-20 00:43:12 +01:00
Johannes Zellner fbe5f42536 Split welcome email between html and text version 2020-11-19 22:29:29 +01:00
Girish Ramakrishnan 7663360ce6 add to changes 2020-11-19 11:20:22 -08:00
Girish Ramakrishnan cac8659fbd Add elasticemail 2020-11-19 11:12:46 -08:00
Girish Ramakrishnan 0a3aad0205 Add httpPaths support 2020-11-19 11:02:53 -08:00
Girish Ramakrishnan cde42e5f92 postgresql: rebuild (for new manifest) 2020-11-19 09:35:55 -08:00
Johannes Zellner 1230a7bb3c Update some translations 2020-11-19 12:25:11 +01:00
Johannes Zellner 1d57d4d9a4 Translate setupAccount view 2020-11-19 11:33:46 +01:00
Girish Ramakrishnan fd965072c5 Remove custom dns when creating app container 2020-11-19 01:10:50 -08:00
Girish Ramakrishnan d703d1cd13 remove httpPort
we can just use container IP instead of all this httpPort exporting magic.
this is also required for exposing httpPaths feature (we have to otherwise
have multiple httpPorts).
2020-11-19 00:38:52 -08:00
Girish Ramakrishnan bd9c664b1a Free up port 53
It's all very complicated.

Approach 1: Simple move unbound to not listen on 0.0.0.0 and only the internal
ones. However, docker has no way to bind only to the "public" interface.

Approach 2: Move the internal unbound to some other port. This required a PR
for haraka - https://github.com/haraka/Haraka/pull/2863 . This works and we use
systemd-resolved by default. However, it turns out systemd-resolved with hog the
lo and thus docker cannot bind again to port 53.

Approach 3: Get rid of systemd-resolved and try to put the dns server list in
/etc/resolv.conf. This is surprisingly hard because the DNS listing can come from
DHCP or netplan or wherever. We can hardcode some public DNS servers but this seems
not a good idea for privacy.

Approach 4: So maybe we don't move the unbound away to different port after all.
However, all the work for approach 2 is done and it's quite nice that the default
resolver is used with the default dns server of the network (probably a caching
server + also maybe has some home network firewalled dns).

So, the final solution is to bind to the make docker bind to the IP explicity.
It's unclear what will happen if the IP changes, maybe it needs a restart.
2020-11-18 23:25:56 -08:00
Johannes Zellner 2e12d1765a Use system language to translate login screen 2020-11-19 00:31:45 +01:00
Johannes Zellner ae94ff1432 Send Cloudron default language via status call 2020-11-18 23:45:16 +01:00
Johannes Zellner b64acb412e Add cloudron-translation-update script 2020-11-18 23:16:42 +01:00
Johannes Zellner cbc5ec7d89 List languages from dashboard dist/translation 2020-11-18 18:39:55 +01:00
Johannes Zellner fb03e34765 Fix license term checkbox
input elements don't have an innerHtml
2020-11-18 09:35:23 +01:00
Johannes Zellner 5401dc9e18 Update ldapjs module 2020-11-18 09:33:06 +01:00
Girish Ramakrishnan b1addd05dc backup: make password and passwordRepeat the same when not set 2020-11-17 21:12:27 -08:00
Girish Ramakrishnan 9b37597ac8 Bump up max_allowed_packet
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_allowed_packet
has it already set to 64M by default. I also saw some mysql connection
drop issues and think this is the reason
2020-11-17 19:45:28 -08:00
Johannes Zellner 5c636cca0b Use availalbe languages in profile 2020-11-18 00:48:55 +01:00
Johannes Zellner c4d8699f91 Fix typo 2020-11-18 00:45:19 +01:00
Johannes Zellner 8bbcb119ce Avoid having two red action buttons in the uninstall view 2020-11-18 00:40:15 +01:00
Johannes Zellner 15b9ce0ee3 add ability to set cloudron language for admins 2020-11-18 00:28:10 +01:00
Johannes Zellner fd8077d9f5 Add language settings UI 2020-11-18 00:10:45 +01:00
Johannes Zellner 784c8b2bd2 Add route to get available languages 2020-11-18 00:10:06 +01:00
Johannes Zellner 360e6e36cd use consistent styling of automatic backups and updates 2020-11-17 23:37:58 +01:00
Johannes Zellner 51b0f603c5 Only preset skip backup on update if autoupdates are also disabled 2020-11-17 23:31:16 +01:00
Johannes Zellner 01de0250ac Set skip backup on update based on backup config 2020-11-17 22:56:36 +01:00
Johannes Zellner 2388fe5047 Add cloudron global language setting 2020-11-17 22:44:03 +01:00
Johannes Zellner e43160f972 Add missing translations 2020-11-17 16:29:53 +01:00
Johannes Zellner 74a65946b4 Remove unused additional postinstall dialog code 2020-11-17 16:24:43 +01:00
Johannes Zellner a46f7341e7 Add translation for app configure dialogs 2020-11-17 13:59:01 +01:00
Girish Ramakrishnan 064eff0ac1 add changes 2020-11-16 22:50:56 -08:00
Girish Ramakrishnan e6814ca4d2 linode: remove dns warnings
they propagate fine now
2020-11-16 22:50:35 -08:00
Girish Ramakrishnan b5c933494a linode: cannot destructure null/undefined
if we have an error, the destructure will fail
2020-11-16 22:37:53 -08:00
Girish Ramakrishnan 3fdbcb436b if provider is linode, set the default dns to linode 2020-11-16 21:04:18 -08:00
Johannes Zellner 6f12fb200c First bunch of app configure translations 2020-11-16 16:52:51 +01:00
Johannes Zellner 04456e2d8c Remove leftover debug log 2020-11-16 14:45:42 +01:00
Johannes Zellner 0dcf82a120 Remove console view in app configure screen 2020-11-16 14:42:55 +01:00
Johannes Zellner 5435f3f9c1 Move app start/stop to uninstall 2020-11-16 14:42:02 +01:00
Johannes Zellner 5d2f3d51bf Make user repeat the backup encryption password 2020-11-14 11:01:46 +01:00
Johannes Zellner 5ee64c827a Allow up to 4 appstore columns 2020-11-13 22:32:09 +01:00
Johannes Zellner a0e7cf59b6 Add appstore translations 2020-11-13 22:25:55 +01:00
Girish Ramakrishnan 722f45050a Translate the strings 2020-11-13 13:24:11 -08:00
Girish Ramakrishnan 7f3732d43c Add divider for users and groups 2020-11-13 13:09:59 -08:00
Girish Ramakrishnan 9ac5889262 Make it user/group listing searchable 2020-11-13 09:59:53 -08:00
Johannes Zellner 4fd1f31ab7 Translate users view 2020-11-13 16:44:39 +01:00
Girish Ramakrishnan 8c0bd97064 mail: owner can be a group 2020-11-13 00:31:34 -08:00
Girish Ramakrishnan 42d8dae900 mailbox: select group as owner 2020-11-13 00:21:20 -08:00
Girish Ramakrishnan 2ca9534715 add some comments on the ldap routes 2020-11-12 22:13:24 -08:00
Johannes Zellner c2799658ba Creating new file or folder is no danger 2020-11-12 23:16:34 +01:00
Johannes Zellner bf2965dba0 Use new translation argument passing 2020-11-12 23:13:52 +01:00
Johannes Zellner 50433206a3 Do not use ng-href in translation strings 2020-11-12 22:23:39 +01:00
Johannes Zellner b9b31afeca Translate mail view 2020-11-12 22:18:30 +01:00
Johannes Zellner 29f7478d86 Translate paginator in emails view 2020-11-12 16:38:48 +01:00
Johannes Zellner 47de719fc8 Translate mails view 2020-11-12 11:42:11 +01:00
Girish Ramakrishnan 641704a741 proxyauth: support basic auth
this is required for apps like transmission
2020-11-11 15:11:36 -08:00
Johannes Zellner 5f716669fe Translate table actions 2020-11-11 22:50:57 +01:00
Johannes Zellner 302a45d6e0 Save some space use 2 space indent like the rest of the file 2020-11-11 22:00:00 +01:00
Johannes Zellner 9becad268d Fixup some profile translations 2020-11-11 21:14:53 +01:00
Johannes Zellner 017e8bf0e5 Finish settings translation 2020-11-11 21:10:43 +01:00
Girish Ramakrishnan 82d88d375e sftp: fix crash 2020-11-11 11:13:30 -08:00
Johannes Zellner 5617e19e7c Ensure we reset the days and hours when schedule is disabled 2020-11-11 20:00:55 +01:00
Johannes Zellner 2a14f6c441 Ensure we don't throw for disabled update checks 2020-11-11 19:42:03 +01:00
Johannes Zellner b7e235b727 Translate the support view 2020-11-11 18:27:43 +01:00
Johannes Zellner bc6ff607ce Translate domains view 2020-11-11 17:39:19 +01:00
Johannes Zellner bbd6b47015 Better style auth proxy login 2020-11-11 14:05:15 +01:00
Johannes Zellner 751caa7b3b Prefix base64 image data 2020-11-11 11:24:20 +01:00
Girish Ramakrishnan fb4025812a proxyauth: render login as ejs 2020-11-11 00:36:56 -08:00
Girish Ramakrishnan 7e16128b11 proxyauth: render as ejs tos end app title and icon 2020-11-11 00:36:02 -08:00
Girish Ramakrishnan 13ab5c1345 proxyauth: Use ajax instead of form submit 2020-11-11 00:02:02 -08:00
Girish Ramakrishnan 008fa09877 proxyauth: redirect correctly after login 2020-11-11 00:01:36 -08:00
Girish Ramakrishnan 045963afe5 serve proxyauth login file from the dashboard 2020-11-10 21:18:50 -08:00
Girish Ramakrishnan 4cebc58576 Handle proxyAuth addon 2020-11-10 20:12:51 -08:00
Girish Ramakrishnan b799df3626 authproxy -> proxyauth 2020-11-10 20:04:31 -08:00
Girish Ramakrishnan 772df6f9af typo 2020-11-10 19:49:57 -08:00
Girish Ramakrishnan 72cb383f2c proxy auth: create token secret 2020-11-10 17:20:27 -08:00
Girish Ramakrishnan 625dc7c49b Add proxyAuth as an addon 2020-11-10 16:50:36 -08:00
Girish Ramakrishnan 86916a94de allow 401 and 403 errors to pass health check
way too many WP sites use some plugin to block health check routes.
maybe some day we will have dynamic health check route settable by user.
2020-11-10 16:50:36 -08:00
Girish Ramakrishnan 71666a028b add support for protected sites
https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-subrequest-authentication/
https://gock.net/blog/2020/nginx-subrequest-authentication-server/
https://github.com/andygock/auth-server
2020-11-10 01:06:39 -08:00
Johannes Zellner a80ddc17a7 The translation key is called 'filemanager.title' 2020-11-10 01:23:09 +01:00
Johannes Zellner e50ff5e364 We need to use the translate promise for the window titles 2020-11-10 01:22:01 +01:00
Johannes Zellner ec00eecab3 Translate the filemanager 2020-11-10 01:21:44 +01:00
Johannes Zellner 89cde563f6 We use 2 space indent in html 2020-11-09 23:49:22 +01:00
Johannes Zellner a809d3fecb Set logs, filemanager and terminal title programmatically to avoid angular template leaks 2020-11-09 23:32:47 +01:00
Girish Ramakrishnan 01e6301332 collectd: adjust collectd config when app is stopped and started 2020-11-09 10:37:22 -08:00
Johannes Zellner 2ddb26761a Add terminal translations 2020-11-09 11:23:07 +01:00
Johannes Zellner 13050f7bff Give log files better names on download 2020-11-09 11:07:16 +01:00
Johannes Zellner f8229ba53b Ensure all views using client.js have required dependencies 2020-11-08 10:48:30 +01:00
Johannes Zellner f0a5796f2e Move translation provider setup into shared client.js 2020-11-08 10:41:42 +01:00
Johannes Zellner 5f6344f400 Translate logviewer 2020-11-08 10:40:08 +01:00
Johannes Zellner 8550b88dfe add quick action for logs/terminal/filemanager in the app config header 2020-11-08 09:54:21 +01:00
Johannes Zellner 85ff6a02bf Always show filelist header and give scroll top indicator 2020-11-08 00:46:34 +01:00
Johannes Zellner b5fa60235d Skip file moving if location unchanged 2020-11-07 23:00:08 +01:00
Johannes Zellner 6a43e184e8 Fix breadcrumbs in filemanager 2020-11-07 22:58:37 +01:00
Johannes Zellner 8b67b3b884 Add initial drag'n'drop within the filemanager 2020-11-07 22:43:24 +01:00
Johannes Zellner df20ac9190 Init filemanager cwd with explicit null 2020-11-07 11:35:22 +01:00
Girish Ramakrishnan bedcd6fccf Disable the timeout altogether for chunk to upload 2020-11-06 14:47:14 -08:00
Johannes Zellner b6ef7cbb96 Translate systeminformation view 2020-11-06 15:32:49 +01:00
Girish Ramakrishnan df8a71cd8b Each chunk can take up to 30 mins to upload 2020-11-06 00:05:53 -08:00
Girish Ramakrishnan a113ece22b Still have to preserveEnv for the env vars to make it across sudo 2020-11-05 16:13:42 -08:00
Girish Ramakrishnan a63c2cfdf2 reverse this since it makes better reading 2020-11-05 16:08:57 -08:00
Girish Ramakrishnan 8f78a9dcde No need to pass --expose-gc
http://sambal.org/2014/02/passing-options-node-shebang-line/ was a cool trick but not needed at all.

https://bitbucket.org/chromiumembedded/cef/issues/483/dont-always-add-the-expose-gc-v8-flag
says it will change behavior in ways we don't want.
2020-11-05 16:07:28 -08:00
Girish Ramakrishnan 02eb362f37 Set the heap size with large backup memory limits
I had to also give the server some more swap for the backup to succeed
2020-11-05 16:06:12 -08:00
Girish Ramakrishnan f79263a92a backups: periodically dump heap space info 2020-11-05 16:06:09 -08:00
Girish Ramakrishnan 1236b64081 Also search by app id 2020-11-05 10:14:46 -08:00
Girish Ramakrishnan cd95da6d35 Typo in message 2020-11-05 09:59:13 -08:00
Johannes Zellner c15a8dba6c Add translation for notification view 2020-11-05 16:51:41 +01:00
Johannes Zellner 93a7137d10 Move reboot server dialog and logic to main view 2020-11-05 16:45:45 +01:00
Johannes Zellner 61c1622cbf Add services view translation 2020-11-05 14:48:36 +01:00
Johannes Zellner 6298479e17 Add network view translation 2020-11-05 14:27:07 +01:00
Johannes Zellner 3bd55bbeba Add translation for eventlog 2020-11-05 13:13:57 +01:00
Johannes Zellner cf1311fe90 add 'npm run update-translations' command 2020-11-05 13:13:17 +01:00
Johannes Zellner d56653d946 Translate branding 2020-11-05 12:46:24 +01:00
Johannes Zellner 5ab2c9afaa Use new sftp image to fix chown 2020-11-04 15:11:41 +01:00
Johannes Zellner e77201099d Encode filemanager route paths correctly and do not expect starts with / 2020-11-04 13:58:53 +01:00
Johannes Zellner 0b919bfd13 filemanager paths should not start with / 2020-11-04 13:41:29 +01:00
Johannes Zellner 1d7921a760 slightly improve the media viewer widget 2020-11-04 13:03:36 +01:00
Johannes Zellner 20af9ed911 Fix a link targets to not overwrite the hash in the url bar 2020-11-03 21:35:48 +01:00
Johannes Zellner 30a4c00f35 Update sftp addon to avoid crash when overwrite property is missing 2020-11-03 21:27:24 +01:00
Johannes Zellner 849ddd39e0 Finish backups view translation 2020-11-03 16:58:11 +01:00
Johannes Zellner a83dcb7c75 Add more backup view translations 2020-11-03 12:58:33 +01:00
Girish Ramakrishnan e68db4ce57 Aim for 60% used space 2020-11-02 23:42:53 -08:00
Girish Ramakrishnan b5a83ab902 demo: blacklist alltube as well 2020-11-02 15:16:21 -08:00
Johannes Zellner 8ef96aefac Finish all profile translation hooks 2020-11-02 14:59:39 +01:00
Johannes Zellner 7bad9f3e3e Translate the profile main view 2020-10-31 12:24:35 +01:00
Girish Ramakrishnan f2aade3b36 Add file browser button to volume listing 2020-10-30 11:32:22 -07:00
Girish Ramakrishnan 2c9efea733 Use debug instead of console.error 2020-10-30 11:07:51 -07:00
Girish Ramakrishnan 9615dc1458 Mount volumes into the file browser 2020-10-30 11:05:47 -07:00
Johannes Zellner c668b9274a Add more profile translations 2020-10-30 18:12:18 +01:00
Johannes Zellner beec65bdb6 Add all main view titles and navbar translation keys 2020-10-30 18:12:18 +01:00
Johannes Zellner b71e68581d Start using tr filter 2020-10-30 18:12:18 +01:00
Johannes Zellner 7a207650d3 Add shorthand 'tr' filter for translation 2020-10-30 18:12:18 +01:00
Johannes Zellner 53d39608b8 Change to lowercase and scoped translation keys 2020-10-30 18:12:18 +01:00
Johannes Zellner 9912698a71 Add language selector with english as fallback 2020-10-30 18:12:18 +01:00
Johannes Zellner be45a75e4d Add showcase for first string translation 2020-10-30 18:12:18 +01:00
Johannes Zellner 73c43b350a Add initial code to do basic translation 2020-10-30 18:12:18 +01:00
Girish Ramakrishnan f50a8482c3 Fix error code handling 2020-10-30 10:04:00 -07:00
Johannes Zellner 75ad644769 Also show hostPath in select 2020-10-30 15:14:59 +01:00
Johannes Zellner 04299a7436 Fixup mounts ui layout in app configuration 2020-10-30 12:37:32 +01:00
Girish Ramakrishnan cd3dc00f2f Do not allow duplicate mounts 2020-10-29 23:07:48 -07:00
Girish Ramakrishnan 65eae30a48 Mount API fixes 2020-10-29 22:04:38 -07:00
Girish Ramakrishnan da726872ef Fix mounting UI 2020-10-29 22:04:29 -07:00
Girish Ramakrishnan 68f3441fbc Fix display of sso message
regression from 57e8faa8ab
2020-10-29 21:38:00 -07:00
Girish Ramakrishnan fa4392df09 Fix docker.getBinds() 2020-10-29 11:47:37 -07:00
Johannes Zellner f8d6fd80d5 Do not crash if app.volumes does not exist 2020-10-29 12:09:15 +01:00
Girish Ramakrishnan 671b9f235b add storage section in app view 2020-10-28 22:51:16 -07:00
Girish Ramakrishnan 88ed545830 rename appVolumes to appMounts 2020-10-28 22:06:33 -07:00
Girish Ramakrishnan 4388f6e87c Send volumes in REST response 2020-10-28 19:33:32 -07:00
Girish Ramakrishnan 377c2f678e Add volume UI 2020-10-28 17:17:23 -07:00
Girish Ramakrishnan 6157364e20 Cannot update a volume (otherwise, we have to re-configure apps) 2020-10-28 17:04:24 -07:00
Girish Ramakrishnan 96999e399d volume: use the load pattern
this way we can stash info in the eventlog
2020-10-28 15:56:54 -07:00
Girish Ramakrishnan 6a3df679fa Add volume management
the volumes table can later have backup flag, mount options etc
2020-10-28 15:31:21 -07:00
Johannes Zellner 03e49c59e2 Revert "more changes"
This reverts commit d69af56c90.
2020-10-28 16:16:10 +01:00
Girish Ramakrishnan b525b6e4fa fix code style 2020-10-27 17:15:19 -07:00
Johannes Zellner f8f0c50ed8 Change Univention name for external LDAP 2020-10-27 19:43:12 +01:00
Girish Ramakrishnan 5541b89cf7 Revert "redis: add optional flag"
This reverts commit 0cac5610c8.
2020-10-27 08:48:45 -07:00
Girish Ramakrishnan aaeed5d18b Revert "Another check for redis services configs"
This reverts commit d6c3c8a294.
2020-10-27 08:48:17 -07:00
Johannes Zellner d6c3c8a294 Another check for redis services configs 2020-10-27 14:47:52 +01:00
Johannes Zellner d337fc6d47 Do not crash if an app does not have a redis service config 2020-10-27 09:32:22 +01:00
Johannes Zellner 2d897d8537 A task crash should be visible in the task log 2020-10-27 09:20:26 +01:00
Johannes Zellner 23592e19ad Add learning app category 2020-10-27 08:48:48 +01:00
Girish Ramakrishnan 12b101e04f Make the timeout 30 seconds everywhere 2020-10-26 14:08:34 -07:00
Girish Ramakrishnan d69af56c90 more changes 2020-10-26 10:04:37 -07:00
Girish Ramakrishnan 409e4beaaa rsync: Add warning to remove s3 life cycle rules 2020-10-26 10:04:19 -07:00
Girish Ramakrishnan 0cac5610c8 redis: add optional flag 2020-10-24 10:34:30 -07:00
Girish Ramakrishnan 62b369ff8a users: show error if update failed 2020-10-23 11:47:37 -07:00
Girish Ramakrishnan d557c8d9eb Show why the setting exists 2020-10-23 11:47:23 -07:00
Girish Ramakrishnan d0afcf6628 Disable updating the cloudron user in demo mode 2020-10-23 11:41:39 -07:00
Girish Ramakrishnan 37fa27d54f more changes 2020-10-22 10:04:27 -07:00
Girish Ramakrishnan be4fed2c19 postgresql: whitelist pgcrypto extension for loomio 2020-10-22 08:56:55 -07:00
Johannes Zellner 47d02d8c4f Update sftp addon container 2020-10-22 15:52:27 +02:00
Johannes Zellner 4457b5879b Support retry with optional overwrite 2020-10-22 12:45:05 +02:00
Johannes Zellner f586791c71 Add new file creation action and collapse new and upload actions 2020-10-22 10:25:54 +02:00
Girish Ramakrishnan 210d522ec3 sftp: add checkbox for non-admin access 2020-10-21 23:38:19 -07:00
Girish Ramakrishnan 4881d8e3a1 Add option to allow non-admins to access SFTP 2020-10-21 23:38:13 -07:00
Johannes Zellner e54c8bbf99 Handle memory limit errors 2020-10-21 13:27:31 +02:00
Johannes Zellner bd96073429 Move domain in use error below the input field 2020-10-21 13:11:00 +02:00
Johannes Zellner 3ebf250ad9 Use displayed instead of enabled in filemanager context-menu 2020-10-20 13:49:46 +02:00
Johannes Zellner 920181752d Add link which context-menu lib we are using 2020-10-20 13:46:29 +02:00
Johannes Zellner cc618abf58 Update sftp image 2020-10-20 12:44:38 +02:00
Johannes Zellner 660b92cd3b Support more tar and zip formats 2020-10-20 12:31:48 +02:00
Girish Ramakrishnan 546e381325 skip downloading image if image present locally
if we use build service app locally (without push), then we can skip
the download altogether.
2020-10-19 22:22:29 -07:00
Girish Ramakrishnan c7c16ee167 Add extract progress bar 2020-10-19 21:45:13 -07:00
Girish Ramakrishnan 9d1bb29a00 sftp: Make extract work 2020-10-19 19:58:39 -07:00
Girish Ramakrishnan 1e6ea77a8f Add extract context menu item 2020-10-19 19:31:37 -07:00
Girish Ramakrishnan 876d0d5873 sftp: init and access API with a token 2020-10-19 19:13:54 -07:00
Girish Ramakrishnan 58e4bd1077 Fix various linter issues 2020-10-19 15:54:26 -07:00
Girish Ramakrishnan 2aa5c387c7 branding: add template variables
we can now have %YEAR% and %VERSION% in the footer
2020-10-18 10:19:13 -07:00
Girish Ramakrishnan 2c53dc9514 Change button color when update available 2020-10-17 08:50:48 -07:00
Girish Ramakrishnan 9ca8e49a4e More changes 2020-10-15 16:46:22 -07:00
Girish Ramakrishnan ecf1852367 better filenames for backup configs 2020-10-15 16:44:26 -07:00
Johannes Zellner 57e8faa8ab Also fixup sso message display in app configuration 2020-10-15 16:51:17 +02:00
Johannes Zellner 7948d68ac7 Fixup sso message display in postinstall and info dialogs 2020-10-15 16:49:49 +02:00
Johannes Zellner 48f089e136 Reword the password/invite link UI bits 2020-10-14 11:28:28 +02:00
Girish Ramakrishnan 6ceed03f6b 5.6.3 changes 2020-10-12 21:09:47 -07:00
Girish Ramakrishnan 4836b16030 postgresql: make the locale configurable 2020-10-12 18:57:34 -07:00
Girish Ramakrishnan f9f44b18ad suppress reset-failed warning message 2020-10-12 10:08:07 -07:00
Girish Ramakrishnan 4432e65e8a Move the tips to be tooltips like the other buttons 2020-10-09 17:23:17 -07:00
Girish Ramakrishnan 10aded5de4 Fix typo 2020-10-09 17:14:56 -07:00
Johannes Zellner 5481a65ab1 Add refresh button to eventlog 2020-10-09 12:31:25 +02:00
Girish Ramakrishnan d4f5b7ca34 cloudron-setup: mention "After reboot" 2020-10-08 23:23:05 -07:00
Girish Ramakrishnan 9b57329f56 Ghost password can now only be used once 2020-10-08 22:19:18 -07:00
Girish Ramakrishnan 75b867550b Run ack code 20 in parallel
only trigger refresh at the end of it all
2020-10-08 17:56:06 -07:00
Girish Ramakrishnan 0064ac5ead reduce the duration of self-signed certs
https://support.apple.com/en-us/HT210176
https://forum.cloudron.io/topic/3346/automatically-generated-self-signed-wildcard-certificate-doesn-t-appear-to-be-able-to-be-trusted-by-ios-13-or-greater
2020-10-08 14:39:23 -07:00
Girish Ramakrishnan 23f1b0f584 Missed this wording 2020-10-08 11:16:40 -07:00
Girish Ramakrishnan 790b8bed42 Fix redirection wording 2020-10-08 11:15:42 -07:00
Johannes Zellner 1e35b621eb Show error in filemanager if upload fails 2020-10-08 16:05:24 +02:00
Girish Ramakrishnan f2489c0845 some logs for tracking the cron issue 2020-10-07 14:47:51 -07:00
Girish Ramakrishnan dca345b135 restore: disable IP based api calls after all activation tasks
the restore code relies on the status call to get the domain to
redirect. if the IP/v1/cloudron/status does not respond, it will
fail the redirection.
2020-10-07 10:57:19 -07:00
Johannes Zellner 645c1b9151 Limit log files to last 1000 lines 2020-10-07 17:42:35 +02:00
Girish Ramakrishnan b14828e8e1 Add stopped state 2020-10-06 13:02:33 -07:00
Johannes Zellner 678fca6704 For app tickets, send the log files along 2020-10-06 17:53:07 +02:00
Johannes Zellner 4274b8f459 Immediately indicate if remote ssh is now enabled 2020-10-06 16:21:38 +02:00
Johannes Zellner 41e8bcd02f Add enableSshSupport option to support tickets 2020-10-06 16:02:02 +02:00
Johannes Zellner b74fae3762 Support SSH remote enabling on ticket submission 2020-10-06 16:01:59 +02:00
Johannes Zellner 2817ea833a Add enableSshSupport option to support tickets 2020-10-06 16:01:59 +02:00
Girish Ramakrishnan b7ed6d8463 add changes 2020-10-05 21:32:25 -07:00
Girish Ramakrishnan 2fe86f9b8a robots: ensure trailing and leading whitespaces are preserved 2020-10-05 21:31:30 -07:00
Girish Ramakrishnan 005c33dbb5 locations (primary, secondary) of an app must be updated together
do the delete first to clear out all the domains. this way, you can
move primary to redirect in a single shot.
2020-10-05 16:16:58 -07:00
Girish Ramakrishnan 4176317250 Fix version in changes to prepare for 5.6.2 2020-10-05 12:45:12 -07:00
Johannes Zellner 589f19f370 Make app bug report the default, this is what mostly happens 2020-10-05 15:10:23 +02:00
Girish Ramakrishnan bbd562f711 Add changes 2020-10-04 16:40:47 -07:00
Girish Ramakrishnan 8e20db664f Pre-select app domain by default in redirection dropdown 2020-10-04 16:39:59 -07:00
Girish Ramakrishnan a19505a708 Fix postgresql template 2020-10-01 15:47:59 -07:00
Girish Ramakrishnan 1eed16bc97 postgresql: set collation order explicitly 2020-10-01 12:04:52 -07:00
Girish Ramakrishnan d9f88985fe rsync: create destination file only when source is available
if the source disappears, the upload() in the backend creates the file
as 'root'. the chown is never done because the read stream errored.
As a result of permissions, cp fails to hardlink because the hardlink
is run as yellowtent user.

fixes #741
2020-09-30 20:12:17 -07:00
Girish Ramakrishnan a57e33e8d1 Update readme with hotfix instructions 2020-09-30 09:55:17 -07:00
Girish Ramakrishnan fdcd457ce1 Add link to forum 2020-09-30 09:41:20 -07:00
Girish Ramakrishnan 95516a2383 Update readme 2020-09-30 09:40:18 -07:00
Girish Ramakrishnan ba92b1e667 Keep things alphabetical 2020-09-29 14:52:11 -07:00
Girish Ramakrishnan b4552ddb5f more changes 2020-09-29 14:46:52 -07:00
Johannes Zellner f3a159823a Mention why an app update cannot be applied and provide shortcut to start the app if stopped 2020-09-29 17:32:25 +02:00
Johannes Zellner 8388491e58 Remove version from footer 2020-09-29 16:41:00 +02:00
Johannes Zellner e87d206dda Show Cloudron version in settings -> updates 2020-09-29 16:38:31 +02:00
Johannes Zellner db4c8d92da Make the autoupdate disabled text explicit 2020-09-29 16:34:49 +02:00
Johannes Zellner daab4a95c2 Move services menu entry up 2020-09-29 15:24:24 +02:00
Girish Ramakrishnan 1da2450b10 gcs: use copy concurrency 2020-09-28 22:03:08 -07:00
Girish Ramakrishnan 22b8b9b9bd lint 2020-09-28 16:10:55 -07:00
Girish Ramakrishnan 9536b42244 Add changes 2020-09-28 10:27:34 -07:00
Johannes Zellner c87f3a8cb4 Give services panel a separate top-level view 2020-09-28 15:16:02 +02:00
Johannes Zellner 72118a0b66 Add app state filter 2020-09-26 17:50:23 +02:00
Johannes Zellner dd75cdb37e Don't explicitly sync the filesystems on reboot
This will happen during unmount anyways but will first terminate all
processes
2020-09-25 19:11:15 +02:00
Girish Ramakrishnan 68573ceb18 unhide the volume UI 2020-09-24 14:38:34 -07:00
Johannes Zellner 510b88cd68 Make the splash default more fun, needs a minigame 2020-09-24 13:25:34 +02:00
Johannes Zellner 3b3e537797 Update ldapjs dependency to 2.2.0 2020-09-24 12:50:14 +02:00
Girish Ramakrishnan 0f9168052a nginx: add separate endpoint for ip/setup screens
'setup' endpoint for setup/restore. we show the setup wizard.
'ip' endpoint is post activation. we show a splash screen here.

Also, the https://ip will not respond to any api calls anymore
(since this will leak the admin fqdn otherwise).

We should probably make this customizable at some point.

Fixes #739
2020-09-23 23:07:40 -07:00
Girish Ramakrishnan 490720e6a7 Add a splash page
part of cloudron/box#739
2020-09-23 22:14:29 -07:00
Girish Ramakrishnan eb47476c83 collectd: remove nginx status collection
we don't use this at all
2020-09-23 16:09:46 -07:00
Girish Ramakrishnan 7b04817874 rename writeAdmin to writeDashboard 2020-09-23 15:45:04 -07:00
Girish Ramakrishnan c7a7456ec9 more test fixing 2020-09-23 15:31:07 -07:00
Girish Ramakrishnan e422dd1198 turn service must be rebuilt on dashboard domain change
restart only restarts the container and does not affect the env
variables.
2020-09-23 15:18:28 -07:00
Girish Ramakrishnan a75928d805 Fix coding style 2020-09-23 15:13:23 -07:00
Girish Ramakrishnan fb2c5a85b6 Fix cloudron_ghost.json tests 2020-09-23 14:40:45 -07:00
Girish Ramakrishnan 4de2e381ff npm update 2020-09-23 14:08:27 -07:00
Girish Ramakrishnan 4da8c8d6db updateServiceConfig: remove retry from platform code 2020-09-22 21:46:11 -07:00
Girish Ramakrishnan 3c565defca retry setting memory of services 2020-09-22 21:42:47 -07:00
Girish Ramakrishnan 191be658d5 firewall: fix race where blocklist was added after docker rules 2020-09-22 12:02:40 -07:00
Girish Ramakrishnan 1f209d0fb4 fix some comments 2020-09-22 11:43:14 -07:00
Girish Ramakrishnan ba91e1dfb2 Add change 2020-09-21 22:10:58 -07:00
Girish Ramakrishnan 990f75dddc import: when importing filesystem backups, the input box is a path 2020-09-21 21:58:11 -07:00
Girish Ramakrishnan a3c6b82283 Fix exception when getStatus errored 2020-09-21 21:48:22 -07:00
Girish Ramakrishnan 6766884cd8 Update changes 2020-09-21 16:50:13 -07:00
Girish Ramakrishnan b075140e76 /dev/dri may not exist
In ubuntu 16, it doesn't exist.
See also https://forum.cloudron.io/topic/3189/error-server-error-http-code-500-server-error
2020-09-21 15:59:17 -07:00
Girish Ramakrishnan aa8586d273 bump mysql for connection limit 2020-09-17 19:24:24 -07:00
Girish Ramakrishnan 9b2a3d23b2 cloudron-setup: there could be owners who have not selected a username yet 2020-09-17 13:56:04 -07:00
Girish Ramakrishnan 6a43a4bd20 unlink ghost file automatically on successful login 2020-09-17 10:46:32 -07:00
Girish Ramakrishnan 8c78889e88 namecheap: fix crash if server returns invalid response 2020-09-16 16:44:40 -07:00
Girish Ramakrishnan 873159b793 Add to changes 2020-09-16 16:05:09 -07:00
Girish Ramakrishnan f5e0ff51f2 preserve sorting order when doing async queries 2020-09-16 16:03:14 -07:00
Girish Ramakrishnan b5823d3210 use legacy password scheme in mysql 8
https://github.com/db-migrate/node-db-migrate/issues/610

part of #684
2020-09-16 00:03:13 -07:00
Girish Ramakrishnan cd99c22f64 Fix collectd in focal
part of #684
2020-09-16 00:02:58 -07:00
Girish Ramakrishnan baa5122fcb Update mysql and docker
part of #684
2020-09-15 21:58:40 -07:00
Girish Ramakrishnan 5447aa7c80 missed this one 2020-09-15 14:46:47 -07:00
Girish Ramakrishnan 933918ea27 Fix docs url 2020-09-15 14:46:22 -07:00
Girish Ramakrishnan cbbcdc5df1 regenerate nginx configs
Users are seeing SSL_ERROR_RX_UNEXPECTED_NEW_SESSION_TICKET. Probably related
some of the app configs had ssl_session_tickets off and some didn't . It seems nginx
has some issue if they are inconsistent (see also https://github.com/nginx-proxy/nginx-proxy/issues/580#issuecomment-249587149).

https://forum.cloudron.io/topic/3157/ssl-error-after-upgrading-to-5-6-0-on-ubuntu-16
2020-09-15 08:26:41 -07:00
Girish Ramakrishnan 4dfa7b132d ignore duplicates 2020-09-14 13:53:58 -07:00
Girish Ramakrishnan fb5bfaa2bd read does not read last line without a newline 2020-09-14 13:52:10 -07:00
Girish Ramakrishnan f114a629f3 stash the length separately 2020-09-14 12:12:39 -07:00
Girish Ramakrishnan 20e206fa43 migrate blocklist to a txt file
this allows easy copy/pasting of existing deny lists which contain
comments and blank lines
2020-09-14 12:10:29 -07:00
Girish Ramakrishnan 5fca372ddf blocklist is now a text file in the backend 2020-09-14 12:00:47 -07:00
Girish Ramakrishnan 467fa59023 Fix timeout issue when adding lots of network ranges 2020-09-14 09:56:35 -07:00
Johannes Zellner d9d1f13bf9 Ensure blocked ips are deduped and empty strings removed 2020-09-12 20:53:12 +02:00
Johannes Zellner 63b212bea5 Fix blocklist error form state handling 2020-09-12 19:13:10 +02:00
Girish Ramakrishnan 5a1e09936f Change step size to 1MB 2020-09-11 09:48:22 -07:00
Girish Ramakrishnan e21a504c35 we upload 3 parts in parallel 2020-09-10 08:30:59 -07:00
Johannes Zellner 3ba6c387e9 Update dependencies and xtermjs 2020-09-10 15:37:05 +02:00
Johannes Zellner 2c7238b2c9 Make logviewer timestamp sticky 2020-09-10 15:31:19 +02:00
Girish Ramakrishnan 166c06c628 log the partSize 2020-09-10 00:09:54 -07:00
Girish Ramakrishnan 92b9fc02fa Fix memory slider 2020-09-10 00:07:12 -07:00
Girish Ramakrishnan 576281990b Link to our docs and not external 2020-09-09 23:19:37 -07:00
Girish Ramakrishnan 5ff3c8961c mail: log denial of max mail size 2020-09-09 22:48:43 -07:00
Girish Ramakrishnan 6b7570df4e just call it re-configured 2020-09-09 22:36:57 -07:00
Girish Ramakrishnan b141db4776 mail location audit log 2020-09-09 22:31:57 -07:00
Girish Ramakrishnan 08f33f0e78 Add mail location audit log 2020-09-09 22:31:50 -07:00
Girish Ramakrishnan 4cffcfff03 mail: move config eventlogs to box code 2020-09-09 22:24:38 -07:00
Girish Ramakrishnan 0c5a637203 Fix progress indicator when mail location is being changed 2020-09-09 21:49:44 -07:00
Girish Ramakrishnan 59ea292263 only reconfigure email apps when mail server relocated 2020-09-09 21:44:14 -07:00
Girish Ramakrishnan e0ca52b1da Disable changing location when task is active 2020-09-09 21:44:11 -07:00
Girish Ramakrishnan 0c9ea1e0f0 blocklist is only for owner 2020-09-09 20:28:26 -07:00
Girish Ramakrishnan e3b4fdb6b1 better logs of the scheduler 2020-09-09 20:09:16 -07:00
Girish Ramakrishnan e730a6e282 log: do not show app update message for no updates 2020-09-09 19:26:45 -07:00
Girish Ramakrishnan 722808a0e4 firewall: make sure blocklist is first in the forward chain 2020-09-09 17:47:20 -07:00
Girish Ramakrishnan c02cf0f5dc Fix doc links 2020-09-09 10:14:35 -07:00
Girish Ramakrishnan d0e2df5166 re-configure mail apps on mail fqdn change 2020-09-08 19:34:27 -07:00
Girish Ramakrishnan eae33161c1 Forgot the CLOUDRON_ prefix 2020-09-08 19:33:59 -07:00
Girish Ramakrishnan f14df141f7 Add MAIL_SERVER_HOST
This points to the mail fqdn
2020-09-08 19:33:23 -07:00
Girish Ramakrishnan f7a4330cd1 Add CLOUDRON_LDAP_HOST
We have MYSQL_HOST, POSTGRESQL_HOST etc. Just this LDAP has _SERVER
2020-09-08 19:32:21 -07:00
Girish Ramakrishnan b9cda71413 adminFqdn -> mailFqdn 2020-09-08 15:18:46 -07:00
Johannes Zellner e008e44566 No need to mention logs in logviewer 2020-09-06 10:16:59 +02:00
Johannes Zellner c100539736 button group in logviewer looks wrong 2020-09-06 10:16:18 +02:00
Johannes Zellner 32aa3febf9 Do not linebreak loglines 2020-09-06 10:15:41 +02:00
Girish Ramakrishnan 1249b3b3e8 Put save and close together 2020-09-05 23:04:51 -07:00
Johannes Zellner 23474c9752 Only disable motd-news if file exists 2020-09-04 10:49:07 +02:00
Girish Ramakrishnan fc08f9823e s3: copy parts in parallel 2020-09-03 14:31:56 -07:00
Girish Ramakrishnan 639bddb4b7 Do not use app.manifest.title since it may not be set for custom apps 2020-09-03 13:49:38 -07:00
Girish Ramakrishnan f87b32fc7b do not allow setting blocklist in demo mode 2020-09-02 23:04:48 -07:00
Girish Ramakrishnan 468ad6d578 Add some new backup regions 2020-09-02 19:39:58 -07:00
Girish Ramakrishnan 18ba66afcc add linode singapore region 2020-09-02 19:35:02 -07:00
Girish Ramakrishnan 1000d88508 ovh: add sydney region 2020-09-02 19:30:55 -07:00
Girish Ramakrishnan 8b5c7d3d87 make http redirect to https://final-destination 2020-09-02 18:56:22 -07:00
Girish Ramakrishnan e791084793 bump timeout to 24 hours 2020-09-02 18:19:25 -07:00
Girish Ramakrishnan 316a1ae2c5 only scale back containers on infra change 2020-09-02 18:13:08 -07:00
Girish Ramakrishnan 71beca68dc Fix nginx reload race 2020-09-02 18:02:22 -07:00
Girish Ramakrishnan e13cb1debd Fix placeholder text 2020-09-02 14:27:09 -07:00
Johannes Zellner 2c3c8f8c4a Show graph labels based on locale 2020-09-02 18:53:46 +02:00
Johannes Zellner b81196fa87 Update Chart.js to v2.9.3 2020-09-02 17:57:01 +02:00
Johannes Zellner aae79db27a Mention that we use task types also in the dashboard 2020-09-02 17:06:25 +02:00
Johannes Zellner c7291af970 Instead of random string for app icon invalidation use app version
This still leaves a potential issue, where an app gets updated using the
cli while not bumping the version and changing the icon, but maybe we
can ignore that for now in favor of the browser cache for 99% of the
cases
2020-09-02 15:14:46 +02:00
Johannes Zellner 92c3237552 Ensure mail location progress starts at 0 2020-09-02 14:12:38 +02:00
Girish Ramakrishnan 848e446b93 Explain what domain is 2020-09-01 21:49:38 -07:00
Girish Ramakrishnan 6f188da2a6 Do not call onActivated when not activated
regression caused by ba29889f54
2020-09-01 15:35:43 -07:00
Girish Ramakrishnan 9ae4ce82a7 scheduler: stash the containerId in the state
the container id will change when the app is re-configured.
in the future, maybe it's better to do this like sftp.rebuild()
2020-09-01 12:56:06 -07:00
Girish Ramakrishnan 5adfa722d4 Add some debug information 2020-09-01 12:35:31 -07:00
Johannes Zellner 2f96f565eb Use TASK_TYPES in backup view 2020-09-01 16:36:07 +02:00
Johannes Zellner 8fa58eb108 Show mail domain change task progress 2020-09-01 16:31:23 +02:00
Johannes Zellner 31947127d9 Add TASK_TYPE definitions to client.js 2020-09-01 16:31:09 +02:00
Johannes Zellner 2c7cfa1a93 Also add Filemanager button to logviewer 2020-09-01 15:18:42 +02:00
Johannes Zellner b856c4f995 Indent logviewer with 2 spaces since html 2020-09-01 15:17:33 +02:00
Johannes Zellner 497be710a7 Only provide save for filemanager editor 2020-09-01 12:39:02 +02:00
Girish Ramakrishnan d7287b5c3c require owner for firewall config 2020-08-31 22:55:30 -07:00
Girish Ramakrishnan c26dda7cc9 require owner for network blocklist 2020-08-31 22:53:22 -07:00
Girish Ramakrishnan 854010b823 warn user about block list 2020-08-31 22:12:33 -07:00
Girish Ramakrishnan b7440ee516 Do IP based check first before accepting port based checks 2020-08-31 21:55:45 -07:00
Girish Ramakrishnan e4b06b16a9 firewall: implement blocklist 2020-08-31 21:46:07 -07:00
Girish Ramakrishnan 39f7a5be70 Add firewall UI 2020-08-31 21:45:56 -07:00
Girish Ramakrishnan dbc53b8d09 Remove blocked IPs
This will be implemented in the firewall level for now
2020-08-31 17:57:45 -07:00
Girish Ramakrishnan 491af5bd9a stop apps before updating the databases because postgres will "lock" them preventing import 2020-08-31 17:53:29 -07:00
Girish Ramakrishnan c4fe362a08 Typo 2020-08-31 15:28:28 -07:00
Girish Ramakrishnan f55ec5de9b Add note on backups in initial screen 2020-08-31 11:37:29 -07:00
Girish Ramakrishnan 9b67ab9713 typo 2020-08-31 08:58:38 -07:00
Girish Ramakrishnan f0a62600af No need to accept them here since the ports are managed by docker 2020-08-31 08:58:02 -07:00
Johannes Zellner b2279c9acc Make texteditor fullscreen and add saving without closing action 2020-08-31 17:46:26 +02:00
Girish Ramakrishnan dd5dfd98b7 ensure box update backups are also preserved for 3 weeks 2020-08-30 21:38:13 -07:00
Girish Ramakrishnan d5ec38c4db do not restrict postgresql db memory
see also 3ea6610923
2020-08-30 21:37:57 -07:00
Girish Ramakrishnan b420d054ae show ldap login into in all the post install dialogs 2020-08-28 17:08:18 -07:00
Girish Ramakrishnan f945463dbe postgresql: enable uuid-ossp extension 2020-08-26 19:29:41 -07:00
Girish Ramakrishnan cf9439fb3b systemd 237 ignores --nice value in systemd-run 2020-08-26 17:30:47 -07:00
Girish Ramakrishnan 6901847c49 Update mail container for banner changes
fixes #341
2020-08-24 14:30:39 -07:00
Girish Ramakrishnan c54c25c35e fix task signature 2020-08-24 12:57:48 -07:00
Girish Ramakrishnan 566f0f7783 mail: add banner ui
part of cloudron/box#341
2020-08-24 10:36:24 -07:00
Girish Ramakrishnan 5728bce6bc Fix typos 2020-08-24 10:28:53 -07:00
Girish Ramakrishnan d752403ed6 mail: add API to get/set banner
part of #341
2020-08-24 08:56:13 -07:00
Girish Ramakrishnan a48c08bd23 Fix async loop 2020-08-23 18:21:00 -07:00
Girish Ramakrishnan ae24c1d968 Move the refresh functions 2020-08-22 19:34:06 -07:00
Girish Ramakrishnan 8ca344e3bf Various text changes 2020-08-22 16:43:17 -07:00
Girish Ramakrishnan e46bbe8546 Add missing changes 2020-08-22 16:43:00 -07:00
Girish Ramakrishnan f5c8f18980 spamassassin: custom configs and wl/bl 2020-08-22 15:57:26 -07:00
Girish Ramakrishnan 0458d2cb90 Fix mail eventlog to show the new events 2020-08-22 13:08:05 -07:00
Girish Ramakrishnan 7c2322e6e0 Fixup spam configuration UI 2020-08-22 13:01:25 -07:00
Johannes Zellner 2d2270a337 Ensure stderr and exceptions also go to logfile
Bring back supererror for stacktraces when no Error object is throwing
2020-08-21 10:40:32 +02:00
Johannes Zellner d315c53ff8 Only rebuild sftp is something has changed 2020-08-21 09:24:06 +02:00
Girish Ramakrishnan 08abe4bff2 Add note on restart 2020-08-20 23:28:43 -07:00
Girish Ramakrishnan eb69c365fc Fix mail server location UI 2020-08-20 23:23:43 -07:00
Girish Ramakrishnan d36b06acf7 Fix mail location route 2020-08-20 23:12:43 -07:00
Girish Ramakrishnan f6fef21bf7 Fixup route for setting max email size 2020-08-20 22:28:58 -07:00
Girish Ramakrishnan 2299af1dba Add route to set max email size 2020-08-20 22:18:27 -07:00
Girish Ramakrishnan e25ccc5e9a Double the timeout for upload now that chunks can have custom sizes 2020-08-20 16:50:58 -07:00
Girish Ramakrishnan 3ea6610923 do not restrict memory on startup of database addons
this helps the import case where we need all the memory we can get.
we scale the memory down once platform is ready in any case.
2020-08-20 11:16:35 -07:00
Girish Ramakrishnan 2d50f10fd6 Fix some typos 2020-08-19 23:14:05 -07:00
Girish Ramakrishnan 4a1f8457cf Switch to the merged automatic update route 2020-08-19 22:30:48 -07:00
Girish Ramakrishnan 81d0637483 Allow box auto update pattern to be configurable
We just use the current app auto update pattern as the default.
There is now only one pattern for box and app updates.

Fixes #727
2020-08-19 22:09:41 -07:00
Girish Ramakrishnan 6c4df5abf0 unify update check into a single job 2020-08-19 21:43:12 -07:00
Girish Ramakrishnan 2eb0b5eedd remove unused parse-links module 2020-08-19 15:53:12 -07:00
Girish Ramakrishnan 5eb5b952d5 Further clarification 2020-08-19 15:01:39 -07:00
Girish Ramakrishnan 8a375c6363 Add note on part size concurrency 2020-08-19 14:59:27 -07:00
Girish Ramakrishnan ac23b610bc Add upload part size slider 2020-08-19 14:56:41 -07:00
Girish Ramakrishnan 0e00492f54 backups: make part size configurable 2020-08-19 14:39:20 -07:00
Girish Ramakrishnan b84a62eb5d Add to changes 2020-08-19 13:35:42 -07:00
Johannes Zellner c41ed95afe Remove wrong assert 2020-08-19 19:22:10 +02:00
Johannes Zellner fe07013383 Ensure only one sftp rebuild is in progress 2020-08-19 19:13:34 +02:00
Johannes Zellner 4f9cb9a8a1 sftp.rebuild does not need options anymore 2020-08-19 19:08:12 +02:00
Johannes Zellner ec5129d25b Rebuild sftp addon after an apptask 2020-08-19 18:23:44 +02:00
Johannes Zellner 6a781c62ec Improve task progress values
0: not yet handled
1: queued
2: started
100: finished
2020-08-19 16:58:53 +02:00
Girish Ramakrishnan c01ee83cd7 add note on why we delete 2020-08-18 23:53:14 -07:00
Girish Ramakrishnan cc591e399d scheduler: make the container run in same networking space to prevent further churn
idea comes from https://github.com/moby/moby/pull/9402#issuecomment-67259655
and https://github.com/moby/moby/pull/9402#issuecomment-67224239

see also:
https://github.com/moby/moby/issues/9098
https://github.com/moby/moby/pull/9167
https://github.com/moby/moby/issues/12899#issuecomment-97816048 (exec mem leak)
https://github.com/moby/moby/pull/38704

part of #732
2020-08-18 23:44:53 -07:00
Girish Ramakrishnan 7462c703f3 typo 2020-08-18 21:40:10 -07:00
Girish Ramakrishnan 879a6b4202 do not error if container already exists 2020-08-18 21:15:54 -07:00
Girish Ramakrishnan 0ae8dc1040 scheduler: reduce container churn
When we have a lot of app, docker has a tough time keeping up with
the container churn.

The reason why we don't use docker exec is that there is no way
to delete or manage exec containers.

Fixes #732
2020-08-18 20:26:19 -07:00
Girish Ramakrishnan 242548b36a If swap file exists, do nothing
this gives users more control on how to allocate swap
2020-08-18 12:57:51 -07:00
Girish Ramakrishnan 252aedda25 remove verbose logs 2020-08-18 12:46:55 -07:00
Johannes Zellner 5f8b141f62 Add stub mail settings section 2020-08-17 22:38:11 -07:00
Girish Ramakrishnan 3507269321 Allow mail server name to be configurable
Fixes #721
2020-08-17 21:49:59 -07:00
Girish Ramakrishnan 9a5dce33db Be explicit about mailserver routes 2020-08-17 16:26:04 -07:00
Girish Ramakrishnan c4101a62ed rename function to setupDnsAndCert
this way, we can reuse this logic for the mail domain as well
2020-08-17 16:18:48 -07:00
Girish Ramakrishnan f52037f305 Remove cloudron.setupDashboard 2020-08-17 16:18:19 -07:00
Girish Ramakrishnan 03bd67c4e7 coding style 2020-08-17 16:18:12 -07:00
Girish Ramakrishnan 1eef239392 setting dashboard domain now only updates dashboard domain (and not mail)
part of #721
2020-08-17 16:09:20 -07:00
Girish Ramakrishnan d1e14ed691 rename function to setupDashboarDnsAndCert 2020-08-17 15:42:15 -07:00
Girish Ramakrishnan 60a787ce3d If db name exists, re-use it (for repair mode) 2020-08-17 12:04:02 -07:00
Girish Ramakrishnan f96bc6d5f4 keep mongodb database names short 2020-08-17 10:28:49 -07:00
Girish Ramakrishnan 5d439d9e79 Revert "Update mongodb to 4.2.8"
This reverts commit 9d2284add7.

We started updating because some users hit this error

MongoError: namespace name generated from index name "f6d689d0-0098-4ee5-b3ed-a812a75d9ae8.rocketchat_livechat_inquiry.$queueOrder_1_estimatedWaitingTimeQueue_1_estimatedServiceTimeAt_1" is too long (127 byte max)

MongoDB 4.4 bumps up the indices length but the real issue is that database
name that cloudron generates is big enough to make the whole thing exceed.
We will make a fix to make those db names shorter.
2020-08-17 09:44:06 -07:00
Girish Ramakrishnan 517db50712 Hide concurrency settings for non-s3/gcs backup storage 2020-08-15 23:09:21 -07:00
Girish Ramakrishnan 1453178693 settings.setAdmin -> setAdminLocation 2020-08-15 19:24:32 -07:00
Girish Ramakrishnan 510121bf54 remove support for hyphentated domains
this has not been used for a long time
2020-08-15 18:50:07 -07:00
Girish Ramakrishnan 6310a431dd caas: remove hyphenatedSubdomains support
this is not used since ages now
2020-08-15 18:35:51 -07:00
Girish Ramakrishnan 2d607b394c Fix the exporting style 2020-08-15 18:19:01 -07:00
Girish Ramakrishnan bd12b0e441 These fields are now in the subdomains table 2020-08-15 17:25:51 -07:00
Girish Ramakrishnan 738b4e60fa notification: we do not retry update/backup every 4 hours anymore 2020-08-15 10:07:05 -07:00
Girish Ramakrishnan 1ae2f55c04 Remove verbose debug 2020-08-15 09:12:52 -07:00
Girish Ramakrishnan 2ebdf9673d Add VAAPI caps for transcoding 2020-08-14 18:48:53 -07:00
Girish Ramakrishnan 0427d790e5 Explain the command more clearly 2020-08-14 10:27:23 -07:00
Girish Ramakrishnan 9996e9a6d7 Add help text for ptr record 2020-08-14 10:24:21 -07:00
Girish Ramakrishnan 90add7cf47 Add changes 2020-08-14 09:39:50 -07:00
Girish Ramakrishnan ddc211a8ea Looks for search string in app title as well 2020-08-14 09:39:39 -07:00
Girish Ramakrishnan 26b1f8dfdb Do not automatically update to unstable release
fixes #726
2020-08-13 14:26:42 -07:00
Girish Ramakrishnan ba29889f54 remove IP nginx configuration that redirects to dashboard after activation
fixes #728
2020-08-13 14:10:17 -07:00
Girish Ramakrishnan 9d2284add7 Update mongodb to 4.2.8
Fixes #725
2020-08-13 11:32:48 -07:00
Girish Ramakrishnan 32f4f88b88 help text everywhere 2020-08-11 17:03:49 -07:00
Girish Ramakrishnan 45b3062ac6 Always init the concurrency values 2020-08-11 16:51:02 -07:00
Girish Ramakrishnan dd44edde0a only clear backup cache if specific fields changed 2020-08-11 14:01:29 -07:00
Girish Ramakrishnan 885e90e810 add a todo 2020-08-11 12:57:37 -07:00
Girish Ramakrishnan 03296b3195 Fix padding of sliders 2020-08-11 12:07:57 -07:00
Girish Ramakrishnan 9cdf5dd0f3 backups: time the rotation and total as well 2020-08-11 10:28:11 -07:00
Girish Ramakrishnan 97df39a16f add advanced section to tune backup settings 2020-08-11 09:16:09 -07:00
Girish Ramakrishnan df6e3eb1e6 Add deleteConcurrency setting 2020-08-11 09:14:09 -07:00
Girish Ramakrishnan 05026771e1 add memoryLimit, copyConcurrency, downloadConcurrency to backup config 2020-08-10 22:12:01 -07:00
Girish Ramakrishnan 7039108438 pass memory limit as argument to starttask.sh 2020-08-10 21:53:07 -07:00
Girish Ramakrishnan 02ee13cfb2 return empty array when listing 2020-08-10 21:32:54 -07:00
Girish Ramakrishnan 096e244252 Fix typo that causes aliases in lists to bounce
https://forum.cloudron.io/topic/2890/bug-with-mailing-lists-that-point-to-aliases
2020-08-10 17:49:27 -07:00
Girish Ramakrishnan bf5b7294a0 Add missing debugs 2020-08-10 14:54:37 -07:00
Girish Ramakrishnan 59cd6f6e93 Fix groups code to use listing API
the listing API now returns the members
2020-08-10 13:59:46 -07:00
Girish Ramakrishnan a5da266643 groups: when listing, return members as well 2020-08-10 13:50:18 -07:00
Girish Ramakrishnan d4312507e2 Simplify wording 2020-08-10 13:11:10 -07:00
Girish Ramakrishnan 76950bdada remove superfluous wording 2020-08-10 13:08:53 -07:00
Girish Ramakrishnan 01b7bc96fa Fix layout of backup retention dialog 2020-08-10 13:03:59 -07:00
Girish Ramakrishnan efde15b848 backup: remind to not overlap with update schedule 2020-08-10 12:58:19 -07:00
Girish Ramakrishnan 941e0ba6c8 This deletes filters as well 2020-08-10 12:19:20 -07:00
Girish Ramakrishnan 3b818855dc Fix broken help link 2020-08-10 12:02:53 -07:00
Girish Ramakrishnan cf7bb49e15 More missing 5.5 changes 2020-08-10 10:16:09 -07:00
Girish Ramakrishnan 208b732bda yet more 5.5 changes 2020-08-10 10:07:50 -07:00
Girish Ramakrishnan c73d93b8bd more 5.5 changes 2020-08-10 10:05:47 -07:00
Girish Ramakrishnan 98a96eae2b Update mongodb
part of #725
2020-08-10 09:36:56 -07:00
Girish Ramakrishnan 2f9fe30c9d sftp: only mount data dirs that exist
when restoring, the platform starts first and the sftp container
goes and creates app data dirs with root permission. this prevents
the app restore logic from downloading the backup since it expects
yellowtent perm
2020-08-09 12:10:20 -07:00
Girish Ramakrishnan aeee8afc02 export database: fix async logic 2020-08-09 11:14:11 -07:00
Girish Ramakrishnan e85f0a4f52 Rename to box-task
this way we can do systemctl stop box*
2020-08-09 11:14:11 -07:00
Johannes Zellner da98649667 Ensure group listAllWitMembers also returns an ordered list 2020-08-09 11:34:53 +02:00
Girish Ramakrishnan f73c8b00d4 global replace 2020-08-08 22:02:31 -07:00
Girish Ramakrishnan 08f116486a update showndown to 1.9.1
this has openLinksInNewWindow which is smart enough that internal links
open in same tab and external links open in new tab
2020-08-08 21:58:44 -07:00
Girish Ramakrishnan f6f5ae8578 show users name 2020-08-08 19:15:21 -07:00
Girish Ramakrishnan d82dde4b7f Add some $variables to the post install message
This way the post install messages can be better.

Removed it as a filter because I cannot figure how to pass args to it
2020-08-08 19:12:16 -07:00
Girish Ramakrishnan 5ac08cc06b sftp: fix home directory path 2020-08-08 18:16:35 -07:00
Girish Ramakrishnan 91d4d95cb4 linter says the escapes are not needed 2020-08-08 17:58:48 -07:00
Girish Ramakrishnan b9973d69c3 SSO_MARKER is now standardized 2020-08-08 17:58:04 -07:00
Girish Ramakrishnan da72597dd3 Fix start/stop task scripts for ubuntu 16 2020-08-08 11:10:02 -07:00
Girish Ramakrishnan 1f1c94de70 Fix certificate ordering logic
* app certs set by user are always preferred
* If fallback, choose fallback certs. ignore others
* If LE, try to pick LE certs. Otherwise, provider fallback.

Fixes #724
2020-08-07 23:02:24 -07:00
Girish Ramakrishnan 60b3fceea6 reset-failed state of tasks during startup 2020-08-07 22:41:09 -07:00
Girish Ramakrishnan 5073809486 More 5.5.0 changes 2020-08-07 22:20:20 -07:00
Girish Ramakrishnan debd779cfd new public gpg key that doesn't expire
gpg --export admin@cloudron.io > releases.gpg
2020-08-07 22:17:30 -07:00
Girish Ramakrishnan 6b9454100e certs: remove caas backend 2020-08-07 17:58:27 -07:00
Girish Ramakrishnan 779ad24542 domains: remove caas backend, it is unused 2020-08-07 17:57:48 -07:00
Girish Ramakrishnan b94dbf5fa3 remove restricted fallback cert
this feature was never used. iirc, it was for managed hosting
2020-08-07 17:57:25 -07:00
Girish Ramakrishnan 45c49c9757 route53: verifyDnsConfig lists zones using old API
It should be using the listHostedZonesByName API but it was using the old
API (which has a 100 zone limitation) because it was using old credentials.
2020-08-07 09:54:02 -07:00
Girish Ramakrishnan 91288c96b1 s3: set queue size to 3
fixes #691
2020-08-07 00:28:00 -07:00
Girish Ramakrishnan f8e22a0730 Fix tests 2020-08-07 00:21:15 -07:00
Girish Ramakrishnan 114b45882a Set memory limit to 400M for tasks 2020-08-07 00:21:15 -07:00
Girish Ramakrishnan b1b6f70118 Kill all tasks on shutdown and startup
BindsTo will kill all the tasks when systemctl stop box is executed.
But when restarted, it keeps the tasks running. Because of this behavior,
we kill the tasks on startup and stop of the box code.
2020-08-06 23:47:40 -07:00
Girish Ramakrishnan 648d42dfe4 Empty debug prints as undefined for some reason 2020-08-06 23:23:56 -07:00
Girish Ramakrishnan 99f989c384 run apptask and backup task with a nice
A child process inherits whatever nice value is held by the parent at the time that it is forked
2020-08-06 16:46:39 -07:00
Girish Ramakrishnan 2112c7d096 sudo: remove the nice support 2020-08-06 16:44:35 -07:00
Girish Ramakrishnan ac63d00c93 run tasks as separate cgroup via systemd
this allows us to adjust the nice value and memory settings per task

part of #691
2020-08-06 16:43:14 -07:00
Girish Ramakrishnan 8c8e363abc atleast is not a real word
thanks @rob
2020-08-05 10:12:13 -07:00
Girish Ramakrishnan e04871f79f pass log file as argument to task worker
initially, i thought i can hardcode the log file into taskworker.js
depending on the task type but for apptask, it's not easy to get the
appId from the taskId unless we introspect task arguments as well.
it's easier for now to pass it as an argument.
2020-08-05 00:46:34 -07:00
Girish Ramakrishnan 182c162dc4 hardcode logging of box code to box.log 2020-08-04 13:30:18 -07:00
Johannes Zellner 822b38cc89 Fallback to NOOP callback if not supplied 2020-08-04 14:32:01 +02:00
Girish Ramakrishnan d564003c87 backup cleaner: referenced backups must be counted as part of period
otherwise, we end up in a state where box backups keeps referencing
app backups and app backup cleanup is only performed on the remaining
app backups.
2020-08-03 21:22:27 -07:00
Girish Ramakrishnan aa240e8ee3 Remove "old" 2020-08-03 21:00:20 -07:00
Girish Ramakrishnan 1b307632ab Use debug instead of console.* everywhere
No need to patch up console.* anymore

also removes supererror
2020-08-02 12:04:55 -07:00
Girish Ramakrishnan aa747cea85 update postgresl for pg_stat_statements,plpgsql extensions (loomio) 2020-08-02 11:36:42 -07:00
Girish Ramakrishnan f4a322478d cloudron.target is not needed 2020-08-01 20:00:20 -07:00
Girish Ramakrishnan d2882433a5 run backup uploader with a nice of 15
the gzip takes a lot of cpu processing and hogs the CPU. With a nice
level, we give other things higher priority.

An alternate idea that was explored was to use cpulimit. This is to
send SIGSTOP and SIGCONT periodically but this will not make use of the
CPU if it's idle (unlike nice).

Another idea is to use cgroups, but it's not clear how to use it with
the dynamic setup we have.

part of #691
2020-07-31 18:23:36 -07:00
Girish Ramakrishnan a94b175805 Add timing information for backups 2020-07-31 12:59:15 -07:00
Girish Ramakrishnan 37d81da806 do system checks once a day 2020-07-31 11:20:17 -07:00
Johannes Zellner cdaf9e1876 Fix typo for notification bell icon change 2020-07-31 09:25:40 +02:00
Johannes Zellner 1c8352ec56 Fontawesome SVG fonts don't play well with angular1
Essentially SVG fonts use JS to inject elements.
This does not work with ng-show/hide
2020-07-31 09:17:55 +02:00
Johannes Zellner 43ef7f088d Improve multiselect padding when item is not selected 2020-07-31 09:17:34 +02:00
Girish Ramakrishnan d089444441 db upgrade: stop containers only after exporting
we cannot export if the containers were nuked in the platform logic.
for this reason, move the removal near the place where they get started.
2020-07-30 15:28:53 -07:00
Girish Ramakrishnan b0d65a1bae rename startApps to markApps 2020-07-30 15:28:50 -07:00
Girish Ramakrishnan 28b4f66f86 wording 2020-07-30 11:48:40 -07:00
Girish Ramakrishnan 16288cf277 better debug 2020-07-30 11:42:03 -07:00
Girish Ramakrishnan 7ddbabf781 Make the error message clearer 2020-07-30 11:29:43 -07:00
Girish Ramakrishnan fe35f4497b Fix two typos 2020-07-30 10:58:24 -07:00
Girish Ramakrishnan 625463f6ab export the database before upgrade
it's possible that
a) backups are completely disabled
b) skip backup option is selected when upgrading

in the above cases, the dump file is not generated and thus any addon
upgrade will fail. to fix, we dump the db fresh for database upgrades.
2020-07-30 10:23:08 -07:00
Johannes Zellner ff632b6816 Add more external ldap tests 2020-07-30 15:22:03 +02:00
Johannes Zellner fbc666f178 Make externalldap sync more robust 2020-07-30 15:08:01 +02:00
Johannes Zellner 4fb94ea162 Update xtermjs to latest v4.8.1 2020-07-30 14:39:30 +02:00
Johannes Zellner d24340f221 Update to fontawesome 5.14.0 and use svg fonts 2020-07-30 13:20:28 +02:00
Johannes Zellner 482cd123c0 Make notification a separate navbar item 2020-07-30 13:19:03 +02:00
Girish Ramakrishnan d89bbdd50c Update to PostgreSQL 11 2020-07-29 21:54:05 -07:00
Girish Ramakrishnan 96f9aa39b2 add note on why we check for app updates separately 2020-07-29 20:27:06 -07:00
Girish Ramakrishnan ab3abe7e5e Add a way to disable auto updates 2020-07-29 20:14:30 -07:00
Girish Ramakrishnan 31fbffb435 better wording 2020-07-29 16:51:12 -07:00
Girish Ramakrishnan 7330814d0f More 5.5 changes 2020-07-29 16:11:09 -07:00
Girish Ramakrishnan 9a7f8bd861 Allow days/hours to be selected for auto update schedule 2020-07-29 16:10:29 -07:00
Girish Ramakrishnan 29c20cfcc4 rename variable 2020-07-29 15:24:10 -07:00
Girish Ramakrishnan b5c25bcaaa Fix typo in pattern 2020-07-29 12:01:00 -07:00
Johannes Zellner 312efdcd94 Fix debug message 2020-07-29 20:38:46 +02:00
Girish Ramakrishnan 5db78ae359 Fix more usages of backup.intervalSecs 2020-07-29 11:25:59 -07:00
Girish Ramakrishnan 97967e60e8 remove yahoo from smtp test list 2020-07-29 11:25:59 -07:00
Johannes Zellner 9106b5d182 Avoid using extra /data dir for filemanager 2020-07-29 20:14:14 +02:00
Johannes Zellner 74bdb6cb9d Only mount app data volumes if localstorage is used 2020-07-29 19:58:41 +02:00
Johannes Zellner 0a44d426fa Explicitly mount all apps into the sftp container 2020-07-29 19:47:37 +02:00
Girish Ramakrishnan 8abe0a174a Handle case where all days are to be selected 2020-07-29 09:27:55 -07:00
Johannes Zellner e1718c4e8d If app.dataDir is set, first unmount from sftp before deleting on uninstall 2020-07-29 17:54:32 +02:00
Girish Ramakrishnan 692abcd6de show backup days and hours 2020-07-28 23:09:25 -07:00
Girish Ramakrishnan f511a610b5 backups: take a pattern instead of interval secs
part of #699
2020-07-28 21:54:56 -07:00
Girish Ramakrishnan 4d5715188d Increase invite link expiry to a week 2020-07-28 14:19:19 -07:00
Johannes Zellner 03bdcc786e Show critical backup config warning directly in backup ui instead of notification 2020-07-28 18:08:57 +02:00
Johannes Zellner 2ea21be5bd Add basic backup check route tests 2020-07-28 17:23:21 +02:00
Johannes Zellner 5bb0419699 Add backup check route
Part of #719
2020-07-28 17:18:50 +02:00
Johannes Zellner a8131eed71 Run initial backup configuration check only after activation
Part of #719
2020-07-28 17:12:38 +02:00
Johannes Zellner 6df2985e2a Remove wrong hand css class 2020-07-28 12:24:21 +02:00
Girish Ramakrishnan 05de8b54ec Add option to delete mails
Part of cloudron/box#720
2020-07-27 22:55:25 -07:00
Girish Ramakrishnan ed09c06ba4 Add option to remove mailbox data
Fixes #720
2020-07-27 22:55:09 -07:00
Dustin Dauncey c0dad4f5a0 Update system.html 2020-07-27 22:29:22 -07:00
Dustin Dauncey 7ad425e399 Update system.html with a more accurate message on when to use the reboot function. 2020-07-27 22:29:22 -07:00
Girish Ramakrishnan 3c59a0ff31 make it clear it is exported for testing 2020-07-27 22:07:25 -07:00
Johannes Zellner 836a3784cb Add missing mimer dependeny files 2020-07-27 11:48:00 +02:00
Girish Ramakrishnan a6d24b3e48 postgresql: add btree_gist,postgres_fdw extensions for gitlab 2020-07-24 22:30:45 -07:00
Girish Ramakrishnan 06d4aec850 Fix various links in README 2020-07-24 15:05:49 -07:00
Girish Ramakrishnan 060135eecb Next release is 5.5 2020-07-24 09:33:53 -07:00
Johannes Zellner ef296c24fe Mount data custom app data location specifically into sftp addon
Fixes #722
2020-07-24 15:43:26 +02:00
Girish Ramakrishnan 707aaf25ec Add note on underscore in usernames 2020-07-23 16:29:54 -07:00
Johannes Zellner 614674563a Show folders first 2020-07-23 15:01:50 +02:00
Johannes Zellner 349633c8da Better icon handling in filemanager 2020-07-23 12:22:00 +02:00
Johannes Zellner 7d4f617757 Support moving files across folders when renaming 2020-07-23 12:07:24 +02:00
Girish Ramakrishnan e82f17ab06 Show any settings save error 2020-07-22 18:09:44 -07:00
Girish Ramakrishnan 7edeb0c358 nginx displays version in stderr 2020-07-22 17:57:55 -07:00
Girish Ramakrishnan e516af14b2 typo 2020-07-22 17:53:04 -07:00
Girish Ramakrishnan 4086f2671d Disable ldap/directory config/2fa in demo mode 2020-07-22 16:18:22 -07:00
Johannes Zellner cb14592705 Make filemanager reload pickup the directory from hash 2020-07-22 21:41:32 +02:00
Johannes Zellner 77300d6858 Add burger button to also open context-menu 2020-07-22 21:38:39 +02:00
Girish Ramakrishnan 23c4550430 Update postgresql addon to have citext extension for loomio 2020-07-22 08:29:44 -07:00
Johannes Zellner 38682e48d4 Open different mimetypes differently in filemanager 2020-07-21 16:27:51 +02:00
Johannes Zellner 1e5d28e2a2 Fix nav-bar in dark mode 2020-07-21 10:18:50 +02:00
Johannes Zellner ad86b4b1eb Fix mail domain listing in dark mode 2020-07-21 09:26:44 +02:00
Johannes Zellner 99927df991 Also ensure the admin link is not active if it shouldn't 2020-07-20 23:41:00 +02:00
Johannes Zellner 31d25cd6be Add 5.4.1 changes 2020-07-19 21:11:05 +02:00
Johannes Zellner 07b3c7a245 Use sftp addon with fixed symlinks 2020-07-18 19:27:02 +02:00
Johannes Zellner 6661f21e2f Handle symlinks in filemanager 2020-07-18 19:26:18 +02:00
Girish Ramakrishnan 4ef963fe54 Don't let the user bypass 2FA by removing the 'setup2FA' in the url 2020-07-17 14:46:58 -07:00
Girish Ramakrishnan c87ddd5116 Use prettyByteSize instead of prettyDiskSize
this prevents 'not available yet' string for 0 size files
2020-07-17 14:25:00 -07:00
Girish Ramakrishnan 4f4df7d9fe appstore: fix ordering of apps
all apps: alphabetical
popular: based on ranking instead of installCount
New Apps: based on time only
Category: tag and then ranking
2020-07-17 14:22:47 -07:00
Girish Ramakrishnan a00b7281a7 Fixup changelog 2020-07-17 10:43:22 -07:00
Girish Ramakrishnan 0043b3690a Make directory config UI consistent 2020-07-17 10:17:46 -07:00
Girish Ramakrishnan be6c34386d Always show the catch-all description text 2020-07-17 09:51:37 -07:00
Girish Ramakrishnan a8e9a71489 Add missing break 2020-07-17 09:32:32 -07:00
Girish Ramakrishnan 90f42fe6cd Fixup text in postinstall and info dialog 2020-07-16 15:43:30 -07:00
Girish Ramakrishnan ddeee0c970 Add note that links expire in 24 hours 2020-07-16 15:17:51 -07:00
Johannes Zellner 6dd414fe7e Add mailbox restriction code 2020-07-16 18:51:29 +02:00
Johannes Zellner 4cb5e66ccb Make catchall premium 2020-07-16 18:14:42 +02:00
Johannes Zellner 8aad71efd0 Add more feature flags 2020-07-16 18:14:25 +02:00
Johannes Zellner 2028f6b984 Do not reassign ubunt_codename in base image init 2020-07-16 16:42:15 +02:00
Girish Ramakrishnan bff4999d27 mail: add mailbox count route 2020-07-15 15:48:30 -07:00
Girish Ramakrishnan 1fd4d772e4 Fixup mailbox count 2020-07-15 15:47:58 -07:00
Girish Ramakrishnan 3abdbdc7c9 Add info on what cleanup backups does 2020-07-15 15:10:44 -07:00
Johannes Zellner d429015f83 Add more 3.4.0 changes 2020-07-15 14:57:06 +02:00
Johannes Zellner 6d6fba873f Use browser history to allow navigation 2020-07-15 14:48:29 +02:00
Johannes Zellner 6aa8602b96 Replace action buttons with context menu 2020-07-14 23:49:14 +02:00
Johannes Zellner 240272f7ce Cleanup console.log()s 2020-07-14 19:26:24 +02:00
Johannes Zellner 3d17a33c43 Do not rely on angular trying to parse everything in the response for filemanager GET 2020-07-14 17:17:43 +02:00
Johannes Zellner e2628e2d43 Use latest filemanager addon
Fixes dot- and json-files
2020-07-14 17:16:41 +02:00
Johannes Zellner 6956cfa32d Try to figure out the file language for monaco 2020-07-14 16:41:40 +02:00
Johannes Zellner 3a54e662c2 Give monaco some time to settle the ui and add tooltips 2020-07-14 16:28:46 +02:00
Johannes Zellner 823cfca3c3 Support download links 2020-07-14 16:28:18 +02:00
Johannes Zellner 9da2484bab Chrome does not have dragexit event :-/ 2020-07-14 15:32:31 +02:00
Johannes Zellner 0b50d62ef3 Fix filedrop highlight for current folder 2020-07-14 15:28:08 +02:00
Johannes Zellner 343e8e90ba Scroll file lists inside the card 2020-07-14 14:03:40 +02:00
Johannes Zellner 02dcb013ef Clear drop target highlight 2020-07-14 00:53:11 +02:00
Girish Ramakrishnan e77d3f4fcc import and restore: add b2 provider
part of cloudron/box#508
2020-07-13 15:36:44 -07:00
Girish Ramakrishnan 7aff747b1c backups: add b2 provider
part of cloudron/box#508
2020-07-13 14:58:14 -07:00
Girish Ramakrishnan 05dcbee7e3 backups: add b2 provider
part of #508
2020-07-13 14:52:35 -07:00
Johannes Zellner e97f3032cc Make monaco work 2020-07-13 23:35:49 +02:00
Johannes Zellner ebabe29d8e Add monaco-editor resources 2020-07-13 18:58:22 +02:00
Johannes Zellner a81919262e Use addon with chown functionality 2020-07-13 18:48:42 +02:00
Johannes Zellner b690c9bc95 Add filemanager chown dialog 2020-07-13 18:30:29 +02:00
Girish Ramakrishnan b14b5f141b Hide nginx version 2020-07-13 09:27:57 -07:00
Johannes Zellner fd3034bacc Make normal files downloadable 2020-07-13 17:48:53 +02:00
Girish Ramakrishnan 1259d11173 Add back provider field into getStatus 2020-07-13 08:46:05 -07:00
Johannes Zellner 0a7b132be8 Remove or increase timeouts for filemanager 2020-07-13 17:05:22 +02:00
Johannes Zellner 3bcef3d9c3 Fix file rename focus and initial selection 2020-07-13 17:05:01 +02:00
Johannes Zellner da54699815 Add drag'n'drop to filemanager 2020-07-13 15:41:10 +02:00
Johannes Zellner 6b64dd52b9 Remove console.log()s 2020-07-13 12:59:50 +02:00
Girish Ramakrishnan fb07dc2294 implement mandatory 2fa
part of #716
2020-07-10 13:10:07 -07:00
Girish Ramakrishnan ed9210eede Add mandatory 2FA flag
part of #716
2020-07-10 10:25:04 -07:00
Johannes Zellner 779c3ba75b Add upload progress dialog 2020-07-10 19:15:33 +02:00
Johannes Zellner 4564e501d3 Add basic upload progress bar 2020-07-10 19:15:33 +02:00
Girish Ramakrishnan d271d2db57 Allow users to change avatar even if profile is locked 2020-07-10 09:45:02 -07:00
Girish Ramakrishnan 9ee6aa54c6 avatar is not part of the profile lock
this is because avatar is not exposed via LDAP anyways. it's purely
a personal dashboard thing.
2020-07-10 09:43:42 -07:00
Girish Ramakrishnan 7cfc455cd3 make tests pass again
also disable column statistics on ubuntu 20
2020-07-10 09:33:35 -07:00
Johannes Zellner a481ceac8c Allow larger file uploads for filemanager 2020-07-10 18:23:55 +02:00
Girish Ramakrishnan 8c7eff4e24 user: add routes to set/clear avatar 2020-07-10 07:23:38 -07:00
Johannes Zellner 46ed0ab49e For now just add a filemanager button in console section 2020-07-10 16:19:01 +02:00
Johannes Zellner 35dfea03da Show hint if folder is empty 2020-07-10 16:12:34 +02:00
Johannes Zellner ff5036a55b Handle filemanager error if app does not exist 2020-07-10 16:10:49 +02:00
Girish Ramakrishnan c6c584ff74 user: move avatar handling into model code 2020-07-10 07:01:15 -07:00
Johannes Zellner 799892c220 Add footer and fixup main layout 2020-07-10 15:27:44 +02:00
Johannes Zellner 8b160cbbfd Share markdown angular filter via client.js 2020-07-10 15:20:53 +02:00
Johannes Zellner 48983879ab Improve new folder dialog 2020-07-10 15:11:09 +02:00
Johannes Zellner 2cecdd7f01 Add breadcrumb to filemanager 2020-07-10 15:01:56 +02:00
Johannes Zellner 4ebaa674c3 root is uid 0 2020-07-10 14:17:30 +02:00
Johannes Zellner ba50eb121d Use new sftp addon 2020-07-10 14:13:16 +02:00
Johannes Zellner aa8ebbd7ea Add filemanager proxy routes 2020-07-10 14:10:52 +02:00
Johannes Zellner fb637f61f3 Add folder upload hooks 2020-07-10 14:06:32 +02:00
Johannes Zellner 805e07e65f entry.filePath -> entry.fileName 2020-07-10 14:06:32 +02:00
Johannes Zellner 049a488e08 Implement file upload 2020-07-10 14:06:32 +02:00
Johannes Zellner afc90817cf Add file rename 2020-07-10 14:06:32 +02:00
Johannes Zellner 38f3e39258 Add directory creation 2020-07-10 14:06:32 +02:00
Johannes Zellner c674d679bd Add file removal functionality 2020-07-10 14:06:32 +02:00
Johannes Zellner 7c2ab4e5bd Initial filemanager view 2020-07-10 14:06:32 +02:00
Girish Ramakrishnan b86dff8601 Clarify what profile means 2020-07-09 21:56:01 -07:00
Girish Ramakrishnan 64bc9c6dbe disable profile view for all users to avoid confusion 2020-07-09 21:54:09 -07:00
Girish Ramakrishnan a725fc7a0b Add directory config ui 2020-07-09 21:51:51 -07:00
Girish Ramakrishnan bba9963b7c Add directoryConfig feature flag
Fixes #704
2020-07-09 21:51:22 -07:00
Girish Ramakrishnan 6ea2aa4a54 return profileLocked in config route
part of #704
2020-07-09 17:28:44 -07:00
Girish Ramakrishnan fbe3545153 disable profile editing based on directory config
part of cloudron/box#704
2020-07-09 17:18:41 -07:00
Girish Ramakrishnan 3c3f81365b add route to get/set directory config
part of #704
2020-07-09 17:12:07 -07:00
Girish Ramakrishnan 3adeed381b setup account based on directory config
part of #704
2020-07-09 16:39:34 -07:00
Girish Ramakrishnan 0f5b7278b8 add directory config setting
part of #704
2020-07-09 16:02:58 -07:00
Girish Ramakrishnan f94ff49fb9 users: replace modifiedAt with ts 2020-07-09 16:02:49 -07:00
Girish Ramakrishnan d512a9c30d rename function 2020-07-09 16:02:43 -07:00
Girish Ramakrishnan 0c5113ed5b email is never used in account setup 2020-07-09 15:37:35 -07:00
Girish Ramakrishnan 2469f4cdff rename function to sendPasswordResetByIdentifier 2020-07-09 15:37:35 -07:00
Girish Ramakrishnan 50b528260c account setup: Make fields readonly when profile is locked
part of cloudron/box#704
2020-07-09 15:36:52 -07:00
Girish Ramakrishnan d2ece2b7f9 email is not used in setup account 2020-07-09 14:53:14 -07:00
Girish Ramakrishnan f71e47aac7 Update license year 2020-07-09 09:02:26 -07:00
Girish Ramakrishnan 9c53bfb7fb Do not show LDAP logs, it spams a lot 2020-07-07 11:16:47 -07:00
Johannes Zellner 8d9c4b0476 Fix eventlog crash 2020-07-06 14:53:52 +02:00
Johannes Zellner ea1a62c3ef Finish initial round of dark moder overrides 2020-07-06 12:31:15 +02:00
Girish Ramakrishnan 2e5e459094 mail: add pagination to mailboxes UI 2020-07-05 18:21:52 -07:00
Girish Ramakrishnan f51eccdef7 mail: Add pagination to lists UI 2020-07-05 11:55:17 -07:00
Girish Ramakrishnan 8b8144588d list must search members 2020-07-05 11:44:46 -07:00
Girish Ramakrishnan 77553da4c1 mail: add search param for mailbox and mailing list api 2020-07-05 11:23:53 -07:00
Girish Ramakrishnan a9a9af9ef7 s3: add region field to import and restore UI
for s3 v4 compat providers like yandex

fixes cloudron/box#713
2020-07-05 10:58:20 -07:00
Girish Ramakrishnan 200122deee get all mailing lists in a single shot for now 2020-07-05 10:49:30 -07:00
Girish Ramakrishnan cbcf943691 mail: parameterize the query 2020-07-05 10:48:08 -07:00
Girish Ramakrishnan 725a19e5b5 mail: Add pagination to lists API
Fixes #712
2020-07-05 10:48:04 -07:00
Girish Ramakrishnan f9115f902a Do not send alive status
we used to do this for managed hosting to track scaling but we don't
need this info anymore
2020-07-03 19:13:27 -07:00
Girish Ramakrishnan e4faf26d74 5.3.4 changes
(cherry picked from commit 77785097c1)
2020-07-03 14:23:20 -07:00
Girish Ramakrishnan 1c96fbb533 Fixes for tests 2020-07-03 13:47:56 -07:00
Girish Ramakrishnan 3dc163c33d database: rework connection logic 2020-07-03 13:14:00 -07:00
Girish Ramakrishnan edae94cf2e Bump max_connection for postgres addon to 200 2020-07-02 15:47:26 -07:00
Girish Ramakrishnan d1ff8e9d6b Fix crash when mysql crashes 2020-07-02 15:10:05 -07:00
Johannes Zellner 4170be7f34 Also add dark mode to modals and appstore view 2020-07-02 23:22:14 +02:00
Johannes Zellner 0be5a292c4 Initial css overrides for dark mode 2020-07-02 23:15:14 +02:00
Girish Ramakrishnan 70743bd285 database: Fix event emitter warning
the connection object gets reused after release. this means that we keep
attaching the 'error' event and not unlistening.

--trace-warnings can be added to box.service to get the stack trace
2020-07-02 12:00:56 -07:00
Johannes Zellner 493f1505f0 Check also for mountpoint on filesystem with external disk 2020-07-02 19:08:27 +02:00
Girish Ramakrishnan 4555586254 Login Page -> Admin Page 2020-07-01 17:05:15 -07:00
Girish Ramakrishnan 007e3b5eef Add changes 2020-07-01 14:29:40 -07:00
Girish Ramakrishnan 173531b767 Add note on updates 2020-07-01 14:29:02 -07:00
Johannes Zellner d9bf6c0933 also support uniqueMember property next to member for ldap groups 2020-07-01 17:08:17 +02:00
Johannes Zellner 412082d3ef Add univention external ldap provider to selection 2020-07-01 16:11:34 +02:00
Johannes Zellner 3b51b84308 Fix typo to show correct self signed cert support for external ldap 2020-07-01 14:59:50 +02:00
Johannes Zellner 324344d118 Reusue the single correct ldap.createClient call also in auth 2020-07-01 14:59:26 +02:00
Johannes Zellner 5cb71e9443 No need to return externalLdapConfig in getClient() 2020-07-01 14:52:11 +02:00
Johannes Zellner cca19f00c5 Fallback to mailPrimaryAddress in ldap sync 2020-07-01 14:34:41 +02:00
Girish Ramakrishnan 6648f41f3d nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive 2020-06-30 16:00:52 -07:00
Girish Ramakrishnan c1e6b47fd6 Fix sogo aliases
Fixes cloudron/sogo#18
2020-06-30 14:29:50 -07:00
Girish Ramakrishnan 0f103ccce1 Add ping capability (for statping) 2020-06-30 07:40:17 -07:00
Johannes Zellner d6d1ad98e4 Ensure info dialog collapse starts with the closed stated 2020-06-30 10:34:07 +02:00
Johannes Zellner e8560e6905 Ensure we always order apps by fqdn 2020-06-30 10:26:00 +02:00
Girish Ramakrishnan bc6e652293 5.3.3 changes 2020-06-29 19:52:08 -07:00
Girish Ramakrishnan ccaabd6f06 Fix text for custom apps 2020-06-29 19:43:45 -07:00
Girish Ramakrishnan 9ba79cfb32 Fix infinite loop when postinstall has <br/> in it 2020-06-29 19:39:26 -07:00
Girish Ramakrishnan 85b4f2dbdd print sudo command to check failures 2020-06-29 14:03:34 -07:00
Girish Ramakrishnan d47b83a63b Package lock mystery 2020-06-29 14:03:15 -07:00
Johannes Zellner 62e0e34e12 Do not hide info button for custom apps but show note about that in the dialog 2020-06-29 16:27:50 +02:00
Girish Ramakrishnan b2e9fa7e0d aschema: dd servicesConfigJson 2020-06-26 15:48:39 -07:00
Girish Ramakrishnan a9fb444622 Use nginx 1.18 for security fixes 2020-06-26 14:57:53 -07:00
Girish Ramakrishnan 33ba22a021 Put this in 5.3.2 itself 2020-06-26 10:41:32 -07:00
Girish Ramakrishnan 57de0282cd remove provider from trackBeginSetup 2020-06-26 09:55:39 -07:00
Girish Ramakrishnan 8568fd26d8 Fix failing test 2020-06-26 09:48:10 -07:00
Girish Ramakrishnan 84f41e08cf Add mlock capability to manifest (for vault app) 2020-06-26 09:27:35 -07:00
Johannes Zellner a96da20536 TODO is done for filesystem backend moutnpoint check 2020-06-26 17:57:26 +02:00
Johannes Zellner 5199a9342e Add missing ldap client error handling 2020-06-26 17:55:42 +02:00
Girish Ramakrishnan 893ecec0fa redis: Set maxmemory and maxmemory-policy 2020-06-26 08:54:47 -07:00
Girish Ramakrishnan e3da6419f5 Add 5.3.2 changes 2020-06-26 08:48:01 -07:00
Johannes Zellner 2d50ae4b00 Show self-signed error for external ldap setup 2020-06-26 15:18:25 +02:00
Girish Ramakrishnan 0750d2ba50 More changes 2020-06-25 16:48:11 -07:00
Girish Ramakrishnan f1fcb65fbe Do not install sshfs. user will install it if they want
we don't use sshfs anywhere in our code ourselves
2020-06-25 12:21:49 -07:00
Girish Ramakrishnan 215aa65d5a Fix provider usage
* do not send to appstore anymore
* do not set in getStatus/getConfig
* provider is not needed when registering cloudron
2020-06-25 11:20:05 -07:00
Girish Ramakrishnan 85f67c13da remove unused registerWithLicense 2020-06-25 11:11:52 -07:00
Girish Ramakrishnan 6dcc478aeb add to changes 2020-06-25 09:20:37 -07:00
Johannes Zellner 11b567391c Allow self-signed cert for external ldap 2020-06-25 17:54:55 +02:00
Johannes Zellner 3f2496db6f Support self-signed certs for external ldap/ad 2020-06-25 17:45:59 +02:00
Johannes Zellner 612f79f9e0 Copy over changes for 5.3.1 2020-06-25 14:22:44 +02:00
Johannes Zellner 90fb1cd735 We also need enableBackup property for app listing api 2020-06-25 12:31:00 +02:00
Johannes Zellner e50e488c8a Improve how sftp is mentioned in access controls 2020-06-25 10:36:25 +02:00
Girish Ramakrishnan 2a9d32309e Fix the app info dialog 2020-06-24 23:06:12 -07:00
Johannes Zellner de0370011c Support old default autoupdate pattern 2020-06-24 12:21:27 +02:00
Girish Ramakrishnan 4a844e582e Fix wording of subscription dialog 2020-06-23 17:25:27 -07:00
Girish Ramakrishnan d36aad4adc polish the wording 2020-06-23 09:49:11 -07:00
Girish Ramakrishnan 11240b6bbb improve wording a bit 2020-06-23 09:06:47 -07:00
Johannes Zellner b52d3231e4 Add support for special app login page like wordpress has 2020-06-23 12:50:44 +02:00
Girish Ramakrishnan 7c24d9c6c6 Give graphite more memory 2020-06-22 09:55:01 -07:00
Johannes Zellner c9ba4ba50a Add nfs storage provider 2020-06-22 15:51:18 +02:00
Johannes Zellner 60f1b2356a Also make nfs storage provider same as cifs and sshfs 2020-06-22 15:51:05 +02:00
Johannes Zellner 4db07b5254 Fix form error handling for mount points 2020-06-22 15:44:59 +02:00
Johannes Zellner 83688f9fd8 Add link to cifs/sshfs docs 2020-06-22 15:43:19 +02:00
Johannes Zellner 0b8f21508f Add more changes 2020-06-22 12:04:34 +02:00
Johannes Zellner ae128c0fa4 If no appstore account is setup restrict features to free plan 2020-06-22 12:02:10 +02:00
Johannes Zellner 7a384846f8 Add MSP as purpose option 2020-06-19 22:04:41 +02:00
Girish Ramakrishnan 1b4ec9ecf9 Update changes 2020-06-18 10:25:45 -07:00
Girish Ramakrishnan 923f7f3aa8 Do not count stopped apps for memory use 2020-06-18 10:25:21 -07:00
Girish Ramakrishnan b0ce0b61d6 logging: fix crash when router errors 2020-06-18 09:27:09 -07:00
Johannes Zellner 8e0cfcda88 Keep subscription setup screens consistent 2020-06-18 17:59:59 +02:00
Johannes Zellner cd90af35a1 Fix active category selection if appstore search is empty 2020-06-18 17:13:20 +02:00
Johannes Zellner d2ac8536b3 402 is a license error and also returned if no appstore account setup 2020-06-18 14:50:24 +02:00
Johannes Zellner 5100a28ff1 Remove unused features 2020-06-18 14:34:06 +02:00
Johannes Zellner 0830e9293d Disable domain remove button for dashboard domain 2020-06-18 14:06:34 +02:00
Johannes Zellner 4a981cd2e2 Show subscription setup for domain adding 2020-06-18 13:56:37 +02:00
Johannes Zellner b1d956f7bf Show subscription setup dialog for more users 2020-06-18 12:57:12 +02:00
Johannes Zellner 75b2c7236a Use the same pattern for subscription setup in settings and users view 2020-06-18 12:29:25 +02:00
Johannes Zellner c8278e7b24 Add subscription setup link to paid branding feature 2020-06-18 12:16:16 +02:00
Girish Ramakrishnan dbf6520860 more newlines 2020-06-17 20:37:28 -07:00
Girish Ramakrishnan e1ffdaddfa Fix timeout issues in postgresql and mysql addon 2020-06-17 16:39:30 -07:00
Johannes Zellner e593e48d40 Remove debug console.log 2020-06-17 13:16:27 +02:00
Johannes Zellner 39bccea953 Simplify footer branding html 2020-06-17 13:15:52 +02:00
Johannes Zellner 98f62eba9d Improve error case layout in setup 2020-06-17 12:43:04 +02:00
Girish Ramakrishnan 4e65728979 Better text 2020-06-16 12:31:29 -07:00
Johannes Zellner b58ca1506e Add more information to dnssetup screen 2020-06-16 15:28:58 +02:00
Johannes Zellner af8344f482 remove unused requires 2020-06-16 14:37:06 +02:00
Johannes Zellner 7dc2596b3b Ensure we support pre 5.3 Cloudron installation 2020-06-16 14:10:14 +02:00
Johannes Zellner 0109956fc2 do not rely on some argument passed through for infraversion base path 2020-06-16 14:09:55 +02:00
Johannes Zellner 945fe3f3ec Do not spam install logs with nodejs tarball contents 2020-06-16 13:58:23 +02:00
Johannes Zellner e0334b3ac8 Fix oversight to set correct view after admin setup 2020-06-16 13:23:32 +02:00
Johannes Zellner 0fa230527c Improve text layout in setupdns 2020-06-16 13:14:56 +02:00
Johannes Zellner 9c868135f3 app sso flag is not restricted now 2020-06-16 13:09:06 +02:00
Johannes Zellner 13c5085cb1 Fix scroll position in appstore when switching categories 2020-06-16 11:37:10 +02:00
Johannes Zellner 300a3919ab Fix appstore case without apps listed 2020-06-16 11:20:28 +02:00
Johannes Zellner e65d946633 Swap logs and info button 2020-06-16 11:08:37 +02:00
Girish Ramakrishnan 5be288023b update mail container to record separator and spam folder 2020-06-15 13:50:46 -07:00
Girish Ramakrishnan a03f97186c Make mail auth case insensitive 2020-06-15 09:58:55 -07:00
Johannes Zellner 412bd1c1f4 Make nginx logs available in log viewer 2020-06-15 17:30:32 +02:00
Johannes Zellner 0aab891980 Support nginx logs 2020-06-15 17:30:16 +02:00
Johannes Zellner 1d15fd3178 Allow to specify region for custom s3 v4 compat 2020-06-15 16:51:56 +02:00
Johannes Zellner 5268d3f57d Fix test for systems without swap 2020-06-15 16:06:54 +02:00
Girish Ramakrishnan 129cbb5beb backups: fix cleanup
The various changes are:
* Latest backup is always kept for box and app backups
* If the latest backup is part of the policy, it is not counted twice
* Latest backup comes into action only when all backups are outside the retention policy
* For uninstalled apps, latest backup is not preserved
* This way the latest backup of apps that are not referenced in box backup is preserved.
  (for example, for stopped apps)

fixes #692
2020-06-14 22:06:00 -07:00
Girish Ramakrishnan 2601d2945d Fix backup tests 2020-06-14 14:01:01 -07:00
Girish Ramakrishnan e3829eb24b typo 2020-06-14 14:00:29 -07:00
Girish Ramakrishnan f6cb1a0863 backups: query using identifier instead of type
this allows us to move the enums into backups.js instead of backupdb.js
2020-06-14 12:27:41 -07:00
Girish Ramakrishnan 4f964101a0 add identifier to backups table 2020-06-14 11:39:44 -07:00
Girish Ramakrishnan f6dcba025f auditSource is not used in the worker 2020-06-14 09:09:41 -07:00
Johannes Zellner cb94737519 Fix bug where location change makes the app temporarily disappear 2020-06-14 16:31:06 +02:00
Johannes Zellner d6ec65d456 Do not remove alternateDomains to allow apps view filter to work 2020-06-14 13:39:15 +02:00
Johannes Zellner 01683e9383 Another attempt to fix app polling
Using taskId only to update app info leads to various outdated states if
an app task has finished. We need to also update once the task has
finished at least once. So instead of individual app polling, we can
simply rely on the all apps listing api, which we poll anyways and not
rely on the restricted properties in the main apps view.

The app configure will fetch the updated full properties now, not
relying on the Clients internal caching
2020-06-14 13:35:30 +02:00
Johannes Zellner 1960969325 Fix scrollbar quirk for chrome 2020-06-13 23:11:49 +02:00
Johannes Zellner b49721f514 Fix toolbar with layout 2020-06-13 23:11:17 +02:00
Johannes Zellner 6876e82d64 Highligh currently selected category button instead of showing the title 2020-06-13 23:01:48 +02:00
Johannes Zellner 15a7beae57 Show selected category in dropdown button 2020-06-13 22:56:24 +02:00
Johannes Zellner 297a635613 'Recently updated' becomes 'popular' used to be 'featured' 2020-06-13 22:47:10 +02:00
Johannes Zellner e0778c52e8 Fix appstore search margin on mobile 2020-06-13 22:43:35 +02:00
Johannes Zellner e09b9964be Do not overlay the scrollbar 2020-06-13 22:39:37 +02:00
Johannes Zellner 1d27926220 Shorten the appstore search placeholder text 2020-06-13 22:22:44 +02:00
Johannes Zellner 7427d549cc Make the appstore view not so wide 2020-06-13 22:22:25 +02:00
Johannes Zellner 37aeb3f713 Fix border radius in dropdown 2020-06-13 22:17:38 +02:00
Johannes Zellner 7bf06da9f8 Don't add 1sec delay for search input focus 2020-06-13 22:16:16 +02:00
Girish Ramakrishnan 65d8074a07 Fix failing backup test 2020-06-12 12:58:11 -07:00
Girish Ramakrishnan e3af61ca4a Fix failing test 2020-06-12 12:52:32 -07:00
Johannes Zellner b6157d58c8 Show if no app passwords are created 2020-06-12 15:46:34 +02:00
Johannes Zellner 4767fe5515 Fix z-index of appstore view to not overlay the menu 2020-06-12 15:44:13 +02:00
Johannes Zellner 750acdbcd7 Swap navbar icons to make sense 2020-06-12 15:41:23 +02:00
Johannes Zellner 29543fbc85 Use 'My Apps' everywhere 2020-06-12 15:34:54 +02:00
Johannes Zellner 05913d0ae0 Rename owner role to superadmin in UI bits 2020-06-12 15:20:18 +02:00
Johannes Zellner a31617fcb0 Rework the appstore view 2020-06-12 15:02:41 +02:00
Girish Ramakrishnan a58f1268f0 mail: Add Auto-Submitted header to NDRs 2020-06-11 19:48:37 -07:00
Johannes Zellner ec71b622fc Ensure action items are aligned on mobile 2020-06-11 19:33:59 +02:00
Johannes Zellner 3dd659639d Add action item tooltips 2020-06-11 19:32:23 +02:00
Girish Ramakrishnan 41eacc4bc5 postgresql: Add unaccent extension 2020-06-11 09:53:53 -07:00
Girish Ramakrishnan aabb9dee13 Fix transaction rollback logic 2020-06-11 09:50:49 -07:00
Girish Ramakrishnan c855d75f35 remove mkdirp use
node 10.12 has { recursive: true }
2020-06-11 08:27:48 -07:00
Johannes Zellner 4aca2b64b9 Just show the rendered postinstall message as docs in info dialog 2020-06-11 15:32:24 +02:00
Johannes Zellner 4c2c27c686 move logs button into app grid 2020-06-11 15:24:18 +02:00
Girish Ramakrishnan 8f5cdcf439 backups: some logs for debugging 2020-06-10 23:00:23 -07:00
Johannes Zellner 429f45a09a add info dialog for apps 2020-06-10 18:00:50 +02:00
Johannes Zellner 886c668107 Show default memory requirement in app install 2020-06-10 11:31:29 +02:00
Johannes Zellner c0df62cd5b Give more info in dns setup what is happening with the domain 2020-06-10 11:28:47 +02:00
Girish Ramakrishnan 984559427e update manifest format to 5.3.0 2020-06-09 11:35:54 -07:00
Johannes Zellner a8e6d727fa Add logic for email setup and invite setup forms 2020-06-09 15:39:27 +02:00
Johannes Zellner ccf1c78cbb Add ability to develop the setup screen more easily 2020-06-09 15:03:35 +02:00
Johannes Zellner 4e25688dd9 We always require owner email 2020-06-09 14:58:03 +02:00
Johannes Zellner 3378bf7a1e Remove provider from setup 2020-06-09 14:53:43 +02:00
Johannes Zellner 2bbafb5604 Remove unused pre-fill logic in setup 2020-06-09 14:53:19 +02:00
Girish Ramakrishnan 1e82774460 set poll frequency same as the apps.js 2020-06-08 20:26:25 -07:00
Girish Ramakrishnan dce865c3cb only fetch app when there is an active task
fixes cloudron/box#677
2020-06-08 18:01:19 -07:00
Girish Ramakrishnan 81bf84b50a re-use existing progress and message properties
now, when we go back to the app grid, it reflects immediately
2020-06-08 17:54:50 -07:00
Girish Ramakrishnan 94b6f5bffd Call postProcess in getApps 2020-06-08 17:20:18 -07:00
Johannes Zellner 5440a3b62b Ensure we send the info also for cifs 2020-06-08 18:00:04 +02:00
Johannes Zellner 24737382f9 Add CIFS storage backend 2020-06-08 17:52:56 +02:00
Johannes Zellner 89494ced41 Check for sshfs and cifs backup backends, if they are mounted 2020-06-08 17:46:52 +02:00
Johannes Zellner ef764c2393 Merge sshfs.js into filesystem.js 2020-06-08 17:08:26 +02:00
Johannes Zellner 8624e2260d add storage api to make preflight checks
Currently there is only disk space checking but sshfs and cifs need
mount point checking as well
2020-06-08 16:25:05 +02:00
Johannes Zellner 5fa3215a4d Ensure additional group ldap settings are shown 2020-06-08 14:50:32 +02:00
Johannes Zellner aa011f4add add ldap group tests and fixes for the found issues 2020-06-07 13:49:01 +02:00
Girish Ramakrishnan 105141be53 show warning for unstable updates
part of cloudron/box#698
2020-06-05 17:07:33 -07:00
Girish Ramakrishnan 3df61c9ab8 do not automatically update unstable updates
part of #698
2020-06-05 16:26:23 -07:00
Girish Ramakrishnan a4516776d6 make canAutoupdateApp take updateInfo object
part of #698
2020-06-05 16:06:37 -07:00
Girish Ramakrishnan 54d0ade997 curl uses -s and not -q 2020-06-05 13:50:40 -07:00
Johannes Zellner e19edcb67a Do not crash when retention policy is unknown to the dashboard code 2020-06-05 14:35:34 +02:00
Johannes Zellner 3557fcd129 Add sshfs quirks to shared code in filesytstem.js 2020-06-05 13:45:25 +02:00
Johannes Zellner 330b4a613c Retrieve the backupPath from the storage provider itself 2020-06-05 13:27:18 +02:00
Johannes Zellner be0b61a628 Fix backup location display for sshfs 2020-06-05 13:03:16 +02:00
Johannes Zellner 8d79244068 Reorder backup provider list 2020-06-05 12:48:27 +02:00
Johannes Zellner 8ee66d3abf Add sshfs backup configuration 2020-06-05 12:47:33 +02:00
Johannes Zellner 7ba3412aae Add some sshfs config tests 2020-06-05 12:43:09 +02:00
Johannes Zellner 6f60495d4d Initial version of sshfs storage backend 2020-06-05 11:39:51 +02:00
Johannes Zellner 0b2eb8fb9e Sync users into groups
This does not yet remove users from groups

Part of #685
2020-06-05 11:28:57 +02:00
Johannes Zellner 48af17e052 Groups are lowercase on Cloudron 2020-06-05 10:13:19 +02:00
Johannes Zellner b7b1055530 Avoid the pyramid 2020-06-05 09:26:52 +02:00
Johannes Zellner e7029c0afd Remove unsused and poorly named groups.getGroups() API 2020-06-05 09:24:00 +02:00
Johannes Zellner cba3674ac0 Stop ldap syncing if we hit some internal error 2020-06-05 09:03:30 +02:00
Johannes Zellner fb94416b1b Give more information about ldap sync 2020-06-05 08:59:04 +02:00
Johannes Zellner 70a925b416 Handle ldap groups in group edit form 2020-06-05 08:18:40 +02:00
Girish Ramakrishnan 865a549885 say connected 2020-06-04 11:27:11 -07:00
Girish Ramakrishnan 50dcf827a5 remove console.error use in many places
the backtraces just flood the logs

apphealthtask: remove console.error
remove spurious console.dir
cleanup scheduler error logging
2020-06-04 11:21:56 -07:00
Girish Ramakrishnan f5fb582f83 log status and message in morgan
connect lastmile does not forward final handler to express anymore.
otherwise, express logs using console.error()
https://github.com/expressjs/express/issues/2263
2020-06-04 09:17:58 -07:00
Girish Ramakrishnan dbba502f83 remove message from debug 2020-06-04 09:17:58 -07:00
Girish Ramakrishnan aae49f16a2 database: do no reconnect in query 2020-06-04 09:17:58 -07:00
Girish Ramakrishnan 45d5f8c74d make rollback return an error
fixes #690
2020-06-04 09:17:58 -07:00
Girish Ramakrishnan 6cfd64e536 database: do not crash if connection errors
Part of #690
2020-06-04 09:17:58 -07:00
Girish Ramakrishnan c5cc404b3e do not retry here
Part of #690
2020-06-04 09:17:58 -07:00
Johannes Zellner 42cbcc6ce3 groups.create() now needs source argument 2020-06-04 14:20:05 +02:00
Johannes Zellner 959f245ce4 Show ldap indicator for groups 2020-06-04 14:11:05 +02:00
Johannes Zellner 812bdcd462 Fix groups test by ensuring we order by name 2020-06-04 14:03:06 +02:00
Johannes Zellner f275409ee8 Fix cloudron api tests 2020-06-04 13:55:47 +02:00
Johannes Zellner 8994ac3727 Fix backup retention tests 2020-06-04 13:43:25 +02:00
Johannes Zellner 7c5ff5e4d5 Create user groups for ldap groups 2020-06-04 13:26:13 +02:00
Johannes Zellner c5e84d5469 Add source property to userGroups 2020-06-04 13:25:55 +02:00
Johannes Zellner c143450dc6 WIP 2020-06-04 12:59:27 +02:00
Johannes Zellner 07b95c2c4b Add groups.getByName() 2020-06-04 12:48:35 +02:00
Johannes Zellner c30734f7f3 Show in the logs if group sync is disabled 2020-06-04 12:40:28 +02:00
Johannes Zellner b3eb650315 Allow to enable/disable group sync 2020-06-04 12:30:31 +02:00
Johannes Zellner 91f506c17b Explicitly enable/disable ldap group sync 2020-06-04 12:28:31 +02:00
Johannes Zellner bdf7da6ef6 Mention that ldap sync is not automatic 2020-06-04 11:01:18 +02:00
Girish Ramakrishnan 7a17695ad5 Retry in 10 seconds to not make things worse
Part of #690
2020-06-03 16:05:48 -07:00
Johannes Zellner 36d49b8217 Refresh 20 apps in parallel 2020-06-03 23:38:00 +02:00
Johannes Zellner 18ac61e8ab custom asyncForEach() is gone 2020-06-03 23:17:06 +02:00
Johannes Zellner b524da23d5 custom asyncForEachParallel() is gone 2020-06-03 23:11:44 +02:00
Johannes Zellner eeac846f5a custom asyncSeries() is gone 2020-06-03 23:08:05 +02:00
Johannes Zellner 0410ba51ca Add a proper async library 2020-06-03 22:59:17 +02:00
Girish Ramakrishnan f5076c87d4 add to changes 2020-06-03 13:52:53 -07:00
Girish Ramakrishnan a47d6e1f3a cloudron-setup: --provider is dead
Long live --provider

Part of #693
2020-06-03 13:47:30 -07:00
Girish Ramakrishnan f6ff1abb00 cloudron-setup: remove --license arg. unused 2020-06-03 13:16:39 -07:00
Johannes Zellner ca3bf6fe5c Add a way to specify LDAP group related configs 2020-06-03 22:12:50 +02:00
Johannes Zellner 386aaf6470 Initial code to fetch LDAP groups during sync 2020-06-03 22:12:38 +02:00
Johannes Zellner 4353a05350 Just accept all image types for profile pictures
This works as we render things on the browser into a canvas which will
be stored as png on the server
2020-06-02 15:25:29 +02:00
Johannes Zellner d2a3bb7339 Accept all image types for cloudron avatar 2020-06-02 15:14:36 +02:00
Johannes Zellner 2b3c4cf0ff avatar blob now comes in only via branding api calls 2020-06-02 15:13:50 +02:00
Johannes Zellner 589ee2d0c5 Always use binary byte units 2020-06-02 14:34:38 +02:00
Girish Ramakrishnan b602e921d0 better error message if domains exists 2020-06-01 16:11:02 -07:00
Girish Ramakrishnan 2fc3cdc2a2 remove superfluous debug 2020-06-01 09:40:56 -07:00
Girish Ramakrishnan 2178dcc963 Handle already exists
part of cloudron/box#688
2020-05-30 13:33:17 -07:00
Girish Ramakrishnan e2cadbfc30 Fix uniqueness constraint in app passwords table
Fixes #688
2020-05-30 13:25:29 -07:00
Girish Ramakrishnan 3ffa935da7 Revert "part focal support"
This reverts commit 7d36533524.

not ready yet
2020-05-30 10:58:28 -07:00
Girish Ramakrishnan f18fdd4a46 Match default app auto-update pattern with box code 2020-05-30 10:47:00 -07:00
Girish Ramakrishnan 5f539e331a 5.3.0 changes 2020-05-30 09:45:24 -07:00
Girish Ramakrishnan 356d0fabda Add note that pattern must match dashboard code 2020-05-30 09:44:33 -07:00
Girish Ramakrishnan 122ec75cb6 Fix links 2020-05-29 19:10:42 -07:00
Girish Ramakrishnan a3a48e1a49 poll for updates a bit more often 2020-05-29 13:39:16 -07:00
Girish Ramakrishnan 4ede765e1f typo: memoryLimit -> memory 2020-05-29 13:29:01 -07:00
Girish Ramakrishnan 4fa181b346 re-use the latest backup id for non-backupable apps
for stopped apps, as an example
2020-05-28 14:16:38 -07:00
Girish Ramakrishnan 4352d9c698 Add note about triggering backup before stopping 2020-05-28 13:19:33 -07:00
Johannes Zellner 4f76d91ae9 Add backup_config settings API tests 2020-05-28 21:42:25 +02:00
Girish Ramakrishnan 20d1759fa5 Run update checker on stopped apps, we just don't update them 2020-05-28 12:41:51 -07:00
Girish Ramakrishnan 433e783ede do not allow backup, import, update in stopped state 2020-05-28 12:41:51 -07:00
Girish Ramakrishnan 494884595c do not allow backup, import, update in stopped state 2020-05-28 12:15:29 -07:00
Johannes Zellner 47f47d916d Fixup tests 2020-05-28 21:05:21 +02:00
Girish Ramakrishnan b17db02f9d Remove duplicate taskId check 2020-05-28 11:54:56 -07:00
Johannes Zellner b31ac7d1fd Revert backup policy fallback and check in rest api
Check is now in proper location at backups.testConfig()
2020-05-28 20:44:44 +02:00
Johannes Zellner ea47fb7305 Properly check for backup policy in testConfig() 2020-05-28 20:44:44 +02:00
Girish Ramakrishnan 82170f8f1b Fix failing test 2020-05-28 11:04:39 -07:00
Girish Ramakrishnan acb2655f58 rename variable (it ensures backup and may not actually backup) 2020-05-28 11:03:49 -07:00
Girish Ramakrishnan b1464517e6 centralize all the cron patterns in one place 2020-05-28 11:01:46 -07:00
Girish Ramakrishnan 151e6351f6 add couple of 5.2 changes 2020-05-28 09:37:57 -07:00
Johannes Zellner 154f768281 Forgot .length 2020-05-28 16:44:45 +02:00
Johannes Zellner 90c857e8fc Further validate retentionPolicy api input 2020-05-28 16:27:07 +02:00
Johannes Zellner 7a3efa2631 Ensure we get a proper retention policy for backups 2020-05-28 16:26:21 +02:00
Girish Ramakrishnan 38cc767f27 move up the backup cron to not overlap auto-updates 2020-05-27 23:04:04 -07:00
Girish Ramakrishnan e1a718c78f remove redundant call to canBackupApp 2020-05-27 22:48:48 -07:00
Girish Ramakrishnan 32a4450e5e 5.2.4 changes
(cherry picked from commit 2dc7342f09)
2020-05-27 22:35:30 -07:00
Girish Ramakrishnan 0f33a6b34b Fix display of non-appstore apps 2020-05-27 22:31:10 -07:00
Girish Ramakrishnan 231dfe70d0 remove broken disk graphs 2020-05-27 22:24:10 -07:00
Girish Ramakrishnan fca3f606d2 Do not backup stopped apps 2020-05-27 21:04:01 -07:00
Girish Ramakrishnan 79eecd8b3e OVH requires region to be set
https://docs.ovh.com/gb/en/public-cloud/getting_started_with_the_swift_S3_API/#configure-aws-client
2020-05-27 18:11:28 -07:00
Girish Ramakrishnan 4a0a934a76 start using vhost style for accessing s3 style storage
if bucket name has a '.', accept self-signed

fixes #680
2020-05-27 17:50:37 -07:00
Girish Ramakrishnan ca09f64c12 force path style to true for minio
part of cloudron/box#680
2020-05-27 17:50:23 -07:00
Girish Ramakrishnan f7c406bec9 s3: bucket name cannot contain _ or capitals or .
we can make it more elaborate, but not sure if it's needed

https://blogs.easydynamics.com/2016/10/24/aws-s3-bucket-name-validation-regex/
2020-05-27 17:01:42 -07:00
Girish Ramakrishnan f4807a6354 update many node modules 2020-05-27 16:52:22 -07:00
Girish Ramakrishnan dea1f01998 Put some ordering 2020-05-27 09:34:04 -07:00
Girish Ramakrishnan 8cfae92c24 Keep the app backup list concise
if you have even more than 10 apps, the dialog overflows and makes for bad
screenshots...
2020-05-27 09:21:16 -07:00
Johannes Zellner 989a5ba685 Fix docs link to resurrect uninstalled apps 2020-05-27 13:38:43 +02:00
Girish Ramakrishnan 0960008b7b 5.2.4 changes
(cherry picked from commit 4267f5ea0a)
2020-05-26 17:07:03 -07:00
Girish Ramakrishnan a9e49d98fd Wait for sometime to refresh mail domains 2020-05-26 17:02:01 -07:00
Girish Ramakrishnan 04a1aa38b4 Add CIFS as storage provider
part of #686
2020-05-26 15:31:45 -07:00
Girish Ramakrishnan f84622efa1 fs: add create/unlink tests 2020-05-26 15:31:41 -07:00
Girish Ramakrishnan f6c4614275 Do not restart stopped apps
(cherry picked from commit 2e76b8bed9)
2020-05-26 07:54:35 -07:00
Girish Ramakrishnan 7d36533524 part focal support
part of #684
2020-05-25 19:49:15 -07:00
Girish Ramakrishnan 5cd3df4869 better nginx config for higher loads 2020-05-25 15:25:00 -07:00
Johannes Zellner f66d4e34d6 Bring back backupId clipboard logic 2020-05-25 21:47:58 +02:00
Johannes Zellner 989820183c Remove unused clipboard function 2020-05-25 21:47:10 +02:00
Girish Ramakrishnan b0480f48f3 Add changes 2020-05-24 20:12:19 -07:00
Girish Ramakrishnan 2e820c343a remove meaningless debug 2020-05-24 20:11:03 -07:00
Girish Ramakrishnan ce927a2247 Set dmode in tar extract 2020-05-24 20:08:17 -07:00
Girish Ramakrishnan ae810d59e9 mail: fix crash in audit logs 2020-05-24 18:50:10 -07:00
Girish Ramakrishnan 53f0e6c7d3 Fix regression in import UI 2020-05-24 18:44:42 -07:00
Girish Ramakrishnan 1438ee52a1 import: fix crash because encryption is unset 2020-05-24 18:42:04 -07:00
Girish Ramakrishnan de4b3e55fa Use apps.getAll so that app.fqdn is valid 2020-05-24 18:21:35 -07:00
Girish Ramakrishnan d2cd78c5cb more debug() removal 2020-05-24 12:30:48 -07:00
Girish Ramakrishnan d000719fa2 app health monitor is too verbose 2020-05-24 11:43:17 -07:00
Girish Ramakrishnan efea4ed615 more debug() removal 2020-05-24 11:35:31 -07:00
Girish Ramakrishnan 67a931c4b8 Remove verbose logs 2020-05-24 11:33:53 -07:00
Girish Ramakrishnan bdcc5c0629 Mbps -> MBps
Fixes #682
2020-05-23 13:31:23 -07:00
Girish Ramakrishnan 1608faecea Make min period as 12 hours
because we only collect disk data twice a day
2020-05-23 12:40:41 -07:00
Girish Ramakrishnan d113cfc0ba add comment on how often du value is stored 2020-05-22 20:06:45 -07:00
Girish Ramakrishnan 4a3ab50878 5.2.1 changes 2020-05-22 18:49:28 -07:00
Girish Ramakrishnan b39261c8cf remove extra $ 2020-05-22 16:56:01 -07:00
Girish Ramakrishnan 7efb57c8da restart apps on addon container change
when the IP changes on addon container re-create, the apps don't
detect this (maybe there is some large DNS cache timeout in docker)
2020-05-22 16:45:03 -07:00
Girish Ramakrishnan 4260082726 rename variable to avoid name conflict 2020-05-22 14:52:23 -07:00
Girish Ramakrishnan ca573dec91 hide the ruler 2020-05-22 12:05:23 -07:00
Johannes Zellner 3e252e1fd8 app disk usage is only collected twice a day 2020-05-22 19:48:18 +02:00
Johannes Zellner 7adc153e57 Also add swap to apps memory graph 2020-05-22 18:04:33 +02:00
Johannes Zellner ae105d9f83 Fixup app disk usage graphs 2020-05-22 17:16:37 +02:00
Johannes Zellner 87c895bd76 Show graph minutes, since we now have a smaller resolution 2020-05-22 16:33:27 +02:00
Johannes Zellner 034b2b2ddd Add backup details dialog
When a backup contains many apps, displaying them in the main backup
list is confusing and hides most apps
2020-05-22 13:48:29 +02:00
Girish Ramakrishnan 90c24cf356 add cleanup policy test 2020-05-21 14:30:21 -07:00
Girish Ramakrishnan fb5a789f55 1 monthly does not make much sense 2020-05-21 14:09:06 -07:00
Girish Ramakrishnan 54abada561 backups: add progressCallback to cleanup funcs 2020-05-21 13:46:16 -07:00
Girish Ramakrishnan f1922660be add a new line 2020-05-21 10:57:57 -07:00
Girish Ramakrishnan 795e3c57da Add a header for encrypted backup files
this is required to identify old backups and new backups for decryption
2020-05-20 22:44:26 -07:00
Girish Ramakrishnan 3f201464a5 Fix bug where SRS translation was done on the main domain instead of mailing list domain 2020-05-20 21:55:48 -07:00
Girish Ramakrishnan 8ac0be6bb5 Update postgresql for schema ownership fix 2020-05-20 16:44:32 -07:00
Johannes Zellner 2b36a2f8cb Fix busy state for automatic updates and backups 2020-05-20 12:16:35 +02:00
Johannes Zellner d2a81ce907 Move retention and backup schedule interval into a separate settings dialog 2020-05-19 16:13:20 +02:00
Johannes Zellner 130805e7bd Add changes 2020-05-19 14:59:28 +02:00
Johannes Zellner 1f0b0d7bd1 Add all wasabi regions 2020-05-19 14:52:42 +02:00
Girish Ramakrishnan 735527a0f0 rework the updates ui to show the app id
browser are hiding the URL bar and it's becoming harder to get to that id
2020-05-18 14:57:24 -07:00
Girish Ramakrishnan 4dc034dd5e better redis label 2020-05-18 14:57:13 -07:00
Girish Ramakrishnan b8c7357fea redis: if container inactive, return stopped status 2020-05-18 14:43:23 -07:00
Girish Ramakrishnan 819f8e338f stop app now stops it's services as well 2020-05-18 14:33:07 -07:00
Girish Ramakrishnan 9569e46ff8 use docker.restart instead of start/stop since it is atomic 2020-05-18 13:35:42 -07:00
Girish Ramakrishnan b7baab2d0f restore: set encryption to null 2020-05-18 09:07:18 -07:00
Girish Ramakrishnan e2d284797d set HOME explicity when calling migrate script 2020-05-17 21:50:50 -07:00
Girish Ramakrishnan a3ac343fe2 installer: print from and to versions 2020-05-17 21:34:39 -07:00
Girish Ramakrishnan 4bfe4079cc Show enabled/disabled with appropriate class 2020-05-17 09:11:19 -07:00
Girish Ramakrishnan 66eff3a020 Add save/restore backup config to app view 2020-05-16 11:19:47 -07:00
Girish Ramakrishnan 401c561238 Fix spacing in restore view 2020-05-16 10:32:33 -07:00
Girish Ramakrishnan 606fe87ca0 backups: show the app info in contents 2020-05-16 09:47:00 -07:00
Girish Ramakrishnan dadde96e41 remove login events from addons
more often then not this just spams the eventlog
2020-05-15 21:40:34 -07:00
Girish Ramakrishnan f4775cc17c eventlog: handle update error 2020-05-15 21:37:27 -07:00
Girish Ramakrishnan a2e941970a Show endpoint 2020-05-15 16:05:30 -07:00
Girish Ramakrishnan 99475c51e8 fix encryption of 0-length files 2020-05-15 16:05:12 -07:00
Girish Ramakrishnan cc9b4e26b5 use done event to signal write success (just like in extract) 2020-05-15 15:24:12 -07:00
Girish Ramakrishnan 32f232d3c0 destroy input stream on error 2020-05-15 15:21:24 -07:00
Girish Ramakrishnan 235047ad0b bind to source stream error event immediately
download() is async and the source stream error is missed
2020-05-15 14:54:05 -07:00
Girish Ramakrishnan 228f75de0b better error messages 2020-05-15 14:35:19 -07:00
Girish Ramakrishnan c2ed909818 fixes to backups view 2020-05-15 12:48:54 -07:00
Girish Ramakrishnan 2f89e7e2b4 drop NET_RAW since this allows packet sniffing
this however breaks ping
2020-05-15 12:47:36 -07:00
Girish Ramakrishnan 437f39deb3 More changes 2020-05-15 09:16:24 -07:00
Johannes Zellner c38c440e63 Do not throw exception if no app graph data is yet available 2020-05-15 11:49:02 +02:00
Johannes Zellner 29b0785594 Fix cleanup backup button style
Sorry for messing with the btn style names, this grew
2020-05-15 11:41:55 +02:00
Johannes Zellner e15dcd41db Fix documentation links in restore view 2020-05-15 11:40:41 +02:00
Girish Ramakrishnan 6528461873 Add backup listing UI 2020-05-14 22:42:41 -07:00
Girish Ramakrishnan a8f5b5d4e4 Change label to MB 2020-05-14 21:56:22 -07:00
Girish Ramakrishnan 59582f16c4 skip validation in the route 2020-05-14 21:45:13 -07:00
Girish Ramakrishnan be489744c9 Add some retention policies 2020-05-14 21:36:22 -07:00
Girish Ramakrishnan af9e3e38ce apply backup retention policy
part of #441
2020-05-14 21:31:24 -07:00
Girish Ramakrishnan cd0b7ed3d2 rename to keepWithinSecs 2020-05-14 16:45:52 -07:00
Girish Ramakrishnan d992702b87 rename to keepWithinSecs
part of #441
2020-05-14 16:45:28 -07:00
Girish Ramakrishnan 3ebc5c6b9d retentionSecs is now retentionPolicy 2020-05-14 16:41:55 -07:00
Girish Ramakrishnan 6a9fe1128f move retentionSecs inside retentionPolicy
part of #441
2020-05-14 16:33:29 -07:00
Girish Ramakrishnan 66ada600b7 rename retentionSecs to retentionPolicy 2020-05-14 16:27:06 -07:00
Girish Ramakrishnan 4871d5df9d hide the binds ui for this release 2020-05-14 16:09:59 -07:00
Johannes Zellner 7088e6682b Add button to upload and pre-fill backup config 2020-05-15 00:32:49 +02:00
Johannes Zellner 573da29a4d Once upon a time where settings worked 2020-05-14 23:35:03 +02:00
Johannes Zellner babe0adffb Remove secret values and add encryption flag in restore config json 2020-05-14 23:19:17 +02:00
Johannes Zellner 8f0a76ecef Make SECRET_PLACEHOLDER available globally 2020-05-14 23:04:19 +02:00
Johannes Zellner 00cff1a728 Mention that SECRET_PLACEHOLDER is also used in dashboard client.js 2020-05-14 23:04:08 +02:00
Johannes Zellner 9bdeff0a39 Always use constants.SECRET_PLACEHOLDER 2020-05-14 23:02:02 +02:00
Girish Ramakrishnan a1f263c048 stash the backup password in filesystem for safety
we will add a release note asking the user to nuke it
2020-05-14 12:59:37 -07:00
Girish Ramakrishnan 346eac389c bind ui is hidden for this release 2020-05-14 11:57:12 -07:00
Johannes Zellner f52c16b209 Ensure encryption property on backup config always exists 2020-05-14 20:22:10 +02:00
Girish Ramakrishnan 4faf880aa4 Fix crash with unencrypted backups 2020-05-14 11:18:41 -07:00
Girish Ramakrishnan 23607c303c typo 2020-05-13 22:37:11 -07:00
Girish Ramakrishnan f417a49b34 Add encryptionVersion to backups
this will identify the old style backups and warn user that a restore
doesn't work anymore
2020-05-13 22:37:02 -07:00
Girish Ramakrishnan 66fd713d12 rename version to packageVersion 2020-05-13 21:55:50 -07:00
Girish Ramakrishnan 884b7062c9 rename version to packageVersion 2020-05-13 21:54:52 -07:00
Girish Ramakrishnan 2e7630f97e remove stale logs 2020-05-13 19:23:04 -07:00
Girish Ramakrishnan 3f10524532 cleanup cache file to start encrypted rsync backups afresh 2020-05-13 16:35:13 -07:00
Johannes Zellner 51f9826918 Strip quotes for TXT records on name.com
The docs and support claim quotes are needed, but the actual API usage
shows otherwise. We do this to not break users, but ideally name.com
gives a correct and clear answer
2020-05-14 01:03:10 +02:00
Johannes Zellner 07650d424a Show a bit more explanation on the system memory graph 2020-05-14 00:01:42 +02:00
Johannes Zellner 218ec9c678 Plot app memory against the apps memory limit 2020-05-13 23:38:32 +02:00
Johannes Zellner 8b7c3308b3 Remove noisy dots in graphs 2020-05-13 23:35:14 +02:00
Johannes Zellner ca9528fa4e Show app memory in system view 2020-05-13 23:34:14 +02:00
Johannes Zellner aef625ba31 Make it explicit what the graphs show in which units 2020-05-13 23:11:30 +02:00
Johannes Zellner e5c8f2caec Fixup disk graph summary 2020-05-13 22:53:51 +02:00
Johannes Zellner 5c06305f85 Remove unnecessary graphs header and dim top actions 2020-05-13 21:44:26 +02:00
Johannes Zellner 428893d5c5 Actually use cpu values in system graphs 2020-05-13 21:41:16 +02:00
Johannes Zellner fc7277a542 Only show redis services line if we even have a redis 2020-05-13 20:45:03 +02:00
Johannes Zellner c8c6b15285 Rework the system view layout 2020-05-13 20:41:56 +02:00
Girish Ramakrishnan f5bb76333b do hmac validation on filename iv as well
also, pass encryption object instead of config
2020-05-13 10:11:07 -07:00
Girish Ramakrishnan 0a987bdec9 show lock for encrypted backups 2020-05-13 00:03:54 -07:00
Girish Ramakrishnan 4947faa5ca update mail container 2020-05-12 23:19:31 -07:00
Girish Ramakrishnan 101dc3a93c s3: do not retry when testing config 2020-05-12 22:45:01 -07:00
Girish Ramakrishnan ecc4fee84e restore UI fixes for encrypted backups 2020-05-12 22:30:43 -07:00
Girish Ramakrishnan bd3ee0fa24 add changes 2020-05-12 22:00:05 -07:00
Girish Ramakrishnan 2c52668a74 remove format validation in provider config 2020-05-12 22:00:01 -07:00
Girish Ramakrishnan 4802ecfc29 Move the download config down 2020-05-12 21:59:01 -07:00
Girish Ramakrishnan 436f415d9f Add space in save button 2020-05-12 21:43:35 -07:00
Girish Ramakrishnan 164480834a do not reset password and other settings on provider change 2020-05-12 21:41:35 -07:00
Girish Ramakrishnan 68642e056c Show error message in app view 2020-05-12 21:34:44 -07:00
Girish Ramakrishnan 9033c6e1d4 user param is not needed 2020-05-12 21:30:57 -07:00
Girish Ramakrishnan 89fc6feb5f password is not stored 2020-05-12 21:30:52 -07:00
Girish Ramakrishnan 03edd8c96b remove max_old_space_size
we have limited understanding of this option
2020-05-12 20:14:35 -07:00
Girish Ramakrishnan 37dfa41e01 Add hmac to the file data
https://stackoverflow.com/questions/10279403/confused-how-to-use-aes-and-hmac
https://en.wikipedia.org/wiki/Padding_oracle_attack

part of #579
2020-05-12 19:59:06 -07:00
Johannes Zellner 80dc9568ce Remove graphs page 2020-05-13 01:15:04 +02:00
Johannes Zellner 5774a7893f Improve app graph layout 2020-05-13 01:12:13 +02:00
Girish Ramakrishnan ea8a3d798e create encryption keys from password during app import & restore 2020-05-12 15:53:18 -07:00
Johannes Zellner abd9ea9ec5 Add memory and disk graphs to app view 2020-05-13 00:42:34 +02:00
Girish Ramakrishnan 1df94fd84d backups: generate keys from password
this also removes storage of password from db

part of #579
2020-05-12 15:14:51 -07:00
Girish Ramakrishnan 8799882f09 show warning only if location or format changed 2020-05-12 14:59:06 -07:00
Girish Ramakrishnan f85a4878de rename backup key to password 2020-05-12 14:53:37 -07:00
Girish Ramakrishnan 5af957dc9c add changes
part of #579
2020-05-12 10:56:07 -07:00
Girish Ramakrishnan 21073c627e rename backup key to password
Fixes #579
2020-05-12 10:55:10 -07:00
Girish Ramakrishnan 66cdba9c1a remove chat link in readme 2020-05-12 10:21:21 -07:00
Girish Ramakrishnan 56d3b38ce6 read/write iv in the encrypted files
part of #579
2020-05-11 22:35:25 -07:00
Girish Ramakrishnan 15d0275045 key must atleast be 8 chars
part of #579
2020-05-11 16:11:41 -07:00
Girish Ramakrishnan 991c1a0137 check if manifest property is present in network response 2020-05-11 14:52:55 -07:00
Girish Ramakrishnan 7d549dbbd5 logrotate: add some comments 2020-05-11 14:38:50 -07:00
Johannes Zellner e27c5583bb Apps without dockerImage cannot be auto-updated 2020-05-11 23:20:17 +02:00
Johannes Zellner ae87213105 Show hint about required subscription for app update 2020-05-11 23:14:19 +02:00
Girish Ramakrishnan 650c49637f logrotate: Add turn service logs 2020-05-11 13:14:52 -07:00
Girish Ramakrishnan eb5dcf1c3e typo 2020-05-11 11:58:14 -07:00
Johannes Zellner 33bd86a2c7 Show larger app configure icon on mobile 2020-05-11 12:01:01 +02:00
Girish Ramakrishnan ed2b61b709 Add to changes 2020-05-10 15:35:06 -07:00
Girish Ramakrishnan 2092ae22dc redis: show app fqdn instead of location 2020-05-07 09:31:31 -07:00
Girish Ramakrishnan 41466a3018 No need to poll every hour for updates! 2020-05-06 18:58:35 -07:00
Girish Ramakrishnan 2e130ef99d Add automatic flag for update checks
The appstore can then known if a user clicked the check for updates
button manually or if it was done by the automatic updater.

We will fix appstore so that updates are always provided for manual checks.
automatic updates will follow our roll out plan.

We do have one issue that the automatic update checker will reset the manual
updates when it runs, but this is OK.
2020-05-06 18:57:59 -07:00
Girish Ramakrishnan a96fb39a82 mail relay: fix delivery event log 2020-05-05 20:34:45 -07:00
Girish Ramakrishnan c9923c8d4b spam: large emails were not scanned 2020-05-05 15:23:27 -07:00
Johannes Zellner aa9317069a Group redis services and have them collapsed 2020-05-05 16:36:52 +02:00
Girish Ramakrishnan 74b0ff338b Disallow cloudtorrent in demo mode 2020-05-04 14:56:10 -07:00
Girish Ramakrishnan dcaccc2d7a add redis status
part of #671
2020-05-03 19:46:07 -07:00
Johannes Zellner d60714e4e6 Use webmaster@ instead of support@ as LetsEncrypt fallback 2020-05-03 11:02:18 +02:00
Girish Ramakrishnan d513d5d887 appstore: Better error messages 2020-05-02 18:30:44 -07:00
Girish Ramakrishnan 386566fd4b Fcf: ix crash when no email provide with global key 2020-05-02 18:06:21 -07:00
Girish Ramakrishnan 3357ca76fe specify the invalid bind name in error message 2020-05-02 11:07:58 -07:00
Girish Ramakrishnan a31ea92649 Add a UI for binds 2020-05-02 11:07:36 -07:00
Girish Ramakrishnan a183ce13ee put the status code in the error message 2020-04-30 09:24:22 -07:00
Girish Ramakrishnan e9d0ed8e1e Add binds support to containers 2020-04-29 22:51:46 -07:00
Girish Ramakrishnan 66f66fd14f docker: clean up volume API 2020-04-29 21:28:49 -07:00
Girish Ramakrishnan b8f18bdec2 Add OVH Object Storage regions 2020-04-29 13:13:01 -07:00
Girish Ramakrishnan b49d30b477 Add OVH Object Storage backend 2020-04-29 12:47:57 -07:00
Girish Ramakrishnan 73d83ec57e Ensure stopped apps are getting backed up 2020-04-29 12:05:01 -07:00
Girish Ramakrishnan efb39fb24b refactor for addon/service/container consistency
addon - app manifest thing. part of app lifecycle
services - implementation of addon (may have containers assoc)
2020-04-28 15:32:02 -07:00
Girish Ramakrishnan 73623f2e92 add serviceConfig to appdb
part of #671
2020-04-28 15:31:58 -07:00
Johannes Zellner 704977d5f6 Avoid some flickering of apps ui while loading 2020-04-28 15:52:04 +02:00
Girish Ramakrishnan fbcc4cfa50 Rename KNOWN_ADDONS to ADDONS 2020-04-27 22:59:35 -07:00
Girish Ramakrishnan 474a3548e0 Rename KNOWN_SERVICES to SERVICES 2020-04-27 22:59:11 -07:00
Girish Ramakrishnan 2cdf68379b Revert "add volume support"
This reverts commit b8bb69f730.

Revert this for now, we will try a simpler non-object volume first
2020-04-27 22:55:43 -07:00
Girish Ramakrishnan cc8509f8eb More 5.2 changes 2020-04-26 22:28:43 -07:00
Girish Ramakrishnan a520c1b1cb Update all docker images to use base image 2.0.0 2020-04-26 17:09:31 -07:00
Girish Ramakrishnan 75fc2cbcfb Update base image 2020-04-25 10:37:08 -07:00
Girish Ramakrishnan b8bb69f730 add volume support
part of #668, #569
2020-04-24 22:09:07 -07:00
Girish Ramakrishnan b46d3e74d6 Fix crash in cloudflare error handling 2020-04-23 12:07:54 -07:00
Girish Ramakrishnan 77a1613107 test: fix alias routes 2020-04-22 18:16:33 -07:00
Girish Ramakrishnan 62fab7b09f mail: allow alternate mx 2020-04-22 17:36:34 -07:00
Johannes Zellner 5d87352b28 backupId cannot be null during restore 2020-04-21 16:00:19 +02:00
Johannes Zellner 0757c20d59 Show inline text with backup config downlaod link to avoid prominent button 2020-04-21 11:26:52 +02:00
Girish Ramakrishnan fa08847d6d Query aliases for each mailbox 2020-04-20 19:18:11 -07:00
Girish Ramakrishnan ff60f5a381 move aliases route under mailbox
since aliases can now span domains

fixes #577
2020-04-20 19:17:55 -07:00
Girish Ramakrishnan f91f08628a Better variable name 2020-04-20 16:35:52 -07:00
Girish Ramakrishnan 9ebf6b06dd mail: implement aliases across domains
Part of #577
2020-04-20 16:07:23 -07:00
Girish Ramakrishnan 7f666d9369 mail: implement aliases across domains
part of #577
2020-04-20 15:19:48 -07:00
Johannes Zellner 357d5e46a3 Add backup config download button 2020-04-20 18:21:35 +02:00
Girish Ramakrishnan c0f5526801 Simple add a used label for disks that contains nothing we monitor 2020-04-18 23:02:16 -07:00
Girish Ramakrishnan 442f16dbd0 more changes 2020-04-18 22:56:38 -07:00
Girish Ramakrishnan 861204e442 sort returns compare value and not bool 2020-04-18 22:56:12 -07:00
Girish Ramakrishnan eb90b614ea disks: busy flag 2020-04-18 22:48:09 -07:00
Girish Ramakrishnan d087ed2349 graph query exceeeds param limit
node.js has some built-in http header limit. when this gets exceeded,
it terminates the connection and all the queued queries fail as well
2020-04-18 21:25:10 -07:00
Girish Ramakrishnan 6ee7e75465 do not popup error dialogs 2020-04-18 18:09:54 -07:00
Girish Ramakrishnan c2b80d7aba show icon for list 2020-04-18 17:39:13 -07:00
Girish Ramakrishnan 2dcab77ed1 Fix issue where app with oauth addon will not backup or uninstall 2020-04-18 10:08:20 -07:00
Girish Ramakrishnan 13be04a169 Deny non-member email immediately 2020-04-18 02:51:31 -07:00
Girish Ramakrishnan e3767c3a54 remove obsolete isadmin flag 2020-04-18 02:32:17 -07:00
Girish Ramakrishnan ce957c8dd5 update mail container 2020-04-18 02:31:59 -07:00
Girish Ramakrishnan a95e8633cd mail list: add members only checkbox 2020-04-17 17:55:07 -07:00
Girish Ramakrishnan 0606b2994c add membersOnly flag to a mailing list 2020-04-17 17:44:14 -07:00
Girish Ramakrishnan 33acccbaaa only check the p key for dkim
this less-strict DKIM check allows users to set a stronger DKIM key
2020-04-17 12:45:21 -07:00
Girish Ramakrishnan 1e097abe86 Add note on dkim key length 2020-04-17 10:29:14 -07:00
Girish Ramakrishnan e51705c41d acme: request ECC certs 2020-04-17 10:22:01 -07:00
Girish Ramakrishnan 7eafa661fe check .well-known presence upstream
this is required for apps like nextcloud which have caldav/cardav
routes
2020-04-15 16:56:41 -07:00
Girish Ramakrishnan 2fe323e587 remove bogus internal route 2020-04-14 23:11:44 -07:00
Johannes Zellner e3adbbe000 Only show subscription setup dialog when coming from free 2020-04-14 18:38:59 +02:00
Johannes Zellner eef360673b Also hide the app header bits to avoid empty ui fragments while loading 2020-04-12 13:20:01 +02:00
Girish Ramakrishnan 4e608d04dc 5.1.4 changes 2020-04-11 18:45:39 -07:00
Girish Ramakrishnan 36e298c758 check for updates wants more space 2020-04-11 17:46:19 -07:00
Girish Ramakrishnan 275157f27b Show logs link when updater has error 2020-04-11 17:44:04 -07:00
Girish Ramakrishnan 531d314e25 Show error message if gpg failed 2020-04-11 17:11:55 -07:00
Girish Ramakrishnan 1ab23d2902 fix indexOf value comparison 2020-04-11 14:21:05 -07:00
Girish Ramakrishnan b3496e1354 Add ECDHE-RSA-AES128-SHA256 to cipher list
one of our users had the site reverse proxied. it broke after the
5.1 cipher change and they nailed it down to using this cipher.

https://security.stackexchange.com/questions/72926/is-tls-ecdhe-rsa-with-aes-128-cbc-sha256-a-safe-cipher-suite-to-use
says this is safe

The following prints the cipher suite:

    log_format combined2 '$remote_addr - [$time_local] '
        '$ssl_protocol/$ssl_cipher '
        '"$request" $status $body_bytes_sent $request_time '
        '"$http_referer" "$host" "$http_user_agent"';
2020-04-10 09:49:06 -07:00
Girish Ramakrishnan e776deaa3f Add note on Ext4/NFS mounts only 2020-04-09 15:49:47 -07:00
Johannes Zellner 4fc8e9b45e Ensure disable state for all form elements in backup import 2020-04-09 13:15:26 +02:00
Johannes Zellner fe41eec7c5 Fix spacing on import button in app view 2020-04-09 13:13:14 +02:00
Girish Ramakrishnan 2efa0aaca4 serve custom well-known documents via nginx 2020-04-09 00:15:56 -07:00
Girish Ramakrishnan ef9aeb0772 Bump default version for tests 2020-04-08 14:24:58 -07:00
Girish Ramakrishnan 924a0136eb 5.1.3 changes 2020-04-08 13:52:53 -07:00
Girish Ramakrishnan c382fc375e Set the resetTokenCreationTime in invitation links 2020-04-08 13:11:24 -07:00
Girish Ramakrishnan 2544acddfa Fix crash with misconfigured reverse proxy
https://forum.cloudron.io/topic/2288/mastodon-terminal-not-starting
2020-04-08 09:43:43 -07:00
Johannes Zellner d1d1d22734 Ensure we only show the tabs and content when app is loaded 2020-04-08 12:56:57 +02:00
Johannes Zellner 58072892d6 Add 5.1.2 changes 2020-04-08 11:52:32 +02:00
Johannes Zellner 85a897c78c Remove console.log debug leftover 2020-04-08 11:48:12 +02:00
Girish Ramakrishnan 6adf5772d8 update turn config to prevent internal access
https://www.rtcsec.com/2020/04/01-slack-webrtc-turn-compromise/
2020-04-07 15:37:31 -07:00
Girish Ramakrishnan f98e3b1960 more 5.1.1 changes 2020-04-03 10:41:37 -07:00
Girish Ramakrishnan da8b76957a sort disk contents by usage 2020-04-03 10:41:04 -07:00
Girish Ramakrishnan 305f9fd1cf show apps with automatic backups disabled 2020-04-03 10:36:51 -07:00
Girish Ramakrishnan cd2a94ddb8 typo in variable name 2020-04-03 09:56:38 -07:00
Johannes Zellner 671a967e35 Add 5.1.1 changes 2020-04-03 13:33:03 +02:00
Johannes Zellner 950ef0074f Add libcurl3-gnutls as explicit dependency 2020-04-03 09:45:03 +02:00
Girish Ramakrishnan 5515324fd4 coturn -> turn in docker repo name 2020-04-02 19:51:14 -07:00
Girish Ramakrishnan e72622ed4f Fix crash during auto-update 2020-04-02 19:47:29 -07:00
Girish Ramakrishnan e821733a58 add note on exposed ports 2020-04-02 18:09:26 -07:00
Girish Ramakrishnan a03c0e4475 mail: disable hostname validation 2020-04-02 15:00:11 -07:00
Girish Ramakrishnan 3203821546 typo 2020-04-02 12:29:20 -07:00
Girish Ramakrishnan 16f3cee5c5 install custom nginx only on xenial
https://nginx.org/en/linux_packages.html#Ubuntu
http://nginx.org/packages/ubuntu/pool/nginx/n/nginx/
2020-04-02 11:54:22 -07:00
Johannes Zellner 57afb46cbd Ensure nginx installation will not overwrite our conf files 2020-04-02 16:57:55 +02:00
Johannes Zellner 91dde5147a add-apt-repository does not call apt-get update 2020-04-02 13:54:39 +02:00
Johannes Zellner d0692f7379 Ensure we have latest nginx 2020-04-02 12:37:02 +02:00
Johannes Zellner a2df4db504 Parse task creationTime also as utc 2020-04-02 12:19:42 +02:00
Girish Ramakrishnan b7740a4758 do not count reserved as used 2020-04-01 22:15:03 -07:00
Girish Ramakrishnan 62c24de5c4 don't say ubuntu
https://forum.cloudron.io/topic/2228/what-type-area-of-data-makes-up-other-in-disk-usage/4
2020-04-01 18:39:05 -07:00
Girish Ramakrishnan e360658c6e More changes 2020-04-01 17:00:01 -07:00
Girish Ramakrishnan 5ed3e67b76 graphs: ubuntu is only on the root mount point 2020-04-01 16:56:56 -07:00
Girish Ramakrishnan c7f2314a15 add note that memory is 1024 based 2020-04-01 16:42:20 -07:00
Girish Ramakrishnan e7dc77e6de bump mail container for mailbox size fix 2020-04-01 16:31:07 -07:00
Girish Ramakrishnan 420c7ebd67 Fixup mail sizes to be 1000 and not 1024 2020-04-01 16:29:10 -07:00
Girish Ramakrishnan b93b1a6eec Fix prettyDiskSize to use 1000 instead of 1024 2020-04-01 16:26:47 -07:00
Girish Ramakrishnan e240a8b58f add comment on the struct 2020-04-01 16:26:16 -07:00
Girish Ramakrishnan 38d4f2c27b Add note on what df output is 2020-04-01 15:59:48 -07:00
Girish Ramakrishnan 552e2a036c Use block size instead of apparent size in du
https://stackoverflow.com/questions/5694741/why-is-the-output-of-du-often-so-different-from-du-b

df uses superblock info to get consumed blocks/disk size. du with -b
prints actual file size instead of the disk space used by the files.
2020-04-01 15:24:53 -07:00
Johannes Zellner 2d4b978032 It will be 5.1.0 2020-04-01 22:30:50 +02:00
Johannes Zellner 36e00f0c84 We will release a 5.0.7 patch release first 2020-04-01 22:26:23 +02:00
Johannes Zellner ef64b2b945 Use coturn addon tag 1.0.0 2020-04-01 21:50:21 +02:00
Johannes Zellner f6cd33ae24 Set turn secret for apps 2020-04-01 21:50:09 +02:00
Girish Ramakrishnan dd109f149f mail: fix eventlog db perms 2020-04-01 12:24:54 -07:00
Girish Ramakrishnan 7d52be6e99 system: setError is not defined 2020-03-31 18:47:19 -07:00
Girish Ramakrishnan 5b62d63463 clear mailbox on update and restore
part of #669
2020-03-31 17:51:27 -07:00
Girish Ramakrishnan 9b1f0e394a set busy to false on error 2020-03-31 17:45:34 -07:00
Girish Ramakrishnan 3fec599c0c remove mail domain add/remove API
merge this as a transaction into domains API

fixes #669
2020-03-31 14:48:19 -07:00
Girish Ramakrishnan e30ea9f143 make mailbox domain nullable
for apps that do not use sendmail/recvmail addon, these are now null.
otherwise, there is no way to edit the mailbox in the UI

part of #669
2020-03-31 11:26:19 -07:00
Girish Ramakrishnan 1b0cb5d455 remove API calls to add/remove mail domain separately
part of cloudron/box#669
2020-03-31 10:59:01 -07:00
Johannes Zellner 7cb0c31c59 Also restart turn server on dashboard domain change 2020-03-31 14:52:09 +02:00
Johannes Zellner b00a7e3cbb Update turn addon 2020-03-31 10:55:41 +02:00
Johannes Zellner e63446ffa2 Support persistent turn secret 2020-03-31 09:28:57 +02:00
Girish Ramakrishnan 9b79d59d93 Add API token note 2020-03-30 22:37:25 -07:00
Girish Ramakrishnan 3e12316ea1 better wording from rob 2020-03-30 22:34:47 -07:00
Girish Ramakrishnan 580da19bc2 Less strict dmarc validation
fixes #666
2020-03-30 19:32:25 -07:00
Girish Ramakrishnan 936f456cec make reset tokens only valid for a day
fixes #563

mysql timestamps cannot be null. it will become current timestamp when
set as null
2020-03-30 17:13:31 -07:00
Girish Ramakrishnan 5d6a02f73c mysql: create the my.cnf in run time dir 2020-03-30 16:32:54 -07:00
Girish Ramakrishnan b345195ea9 add missing fields in users table 2020-03-30 16:32:28 -07:00
Girish Ramakrishnan 3e6b66751c typoe in assert 2020-03-30 15:17:34 -07:00
Johannes Zellner 1b38c0111f Add turn to logviewer 2020-03-30 18:43:43 +02:00
Johannes Zellner f78571e46d Support reserved port ranges 2020-03-30 10:01:52 +02:00
Johannes Zellner f52000958c Update manifest format to 5.1.1 2020-03-30 08:43:28 +02:00
Johannes Zellner 5ac9c6ce02 add turn,stun ports to RESERVED ones
We still need to protect the TURN port range
2020-03-30 08:30:06 +02:00
Johannes Zellner 1110a67483 Add turn addon setup and teardown calls 2020-03-30 08:24:52 +02:00
Girish Ramakrishnan 57bb1280f8 better error message 2020-03-29 20:12:59 -07:00
Girish Ramakrishnan 25c000599f Fix assert (appStoreId is optional) 2020-03-29 19:12:07 -07:00
Girish Ramakrishnan 86f45e2769 Fix failing test 2020-03-29 18:55:44 -07:00
Girish Ramakrishnan 7110240e73 Only a Cloudron owner can install/update/exec apps with the docker addon
this should have been part of f1975d8f2b
2020-03-29 18:52:37 -07:00
Girish Ramakrishnan 1da37b66d8 use resource pattern in apps routes
this makes it easy to implement access control in route handlers
2020-03-29 17:11:10 -07:00
Girish Ramakrishnan f1975d8f2b only owner can install/repair/update/exec docker addon apps 2020-03-29 16:24:04 -07:00
Girish Ramakrishnan f407ce734a restrict the app to bind mount under /app/data only
rest have to be volumes
2020-03-29 13:57:45 -07:00
Girish Ramakrishnan f813cfa8db Listen only on the docker interface 2020-03-29 13:11:16 -07:00
Girish Ramakrishnan d5880cb953 TODO block is obsolete 2020-03-29 13:10:19 -07:00
Girish Ramakrishnan 95da9744c1 Prefix env vars with CLOUDRON_ 2020-03-29 09:35:34 -07:00
Girish Ramakrishnan 85c3e45cde remove oauth addon code 2020-03-29 09:35:34 -07:00
Johannes Zellner 520a396ded Use turn server with certificates 2020-03-29 09:32:48 +02:00
Johannes Zellner 13ad611c96 Remove ssh related settings from the turn container config 2020-03-29 09:32:48 +02:00
Girish Ramakrishnan 85f58d9681 more changes 2020-03-28 23:10:17 -07:00
Girish Ramakrishnan 5542393eb5 branding: fix login page title 2020-03-28 22:59:07 -07:00
Johannes Zellner c1de62acef Update coturn 2020-03-29 07:30:42 +02:00
Johannes Zellner 7e47e36773 Fix portrange notation in firewall service 2020-03-29 07:25:36 +02:00
Johannes Zellner 00b6217cab Fix turn tls port 2020-03-29 07:09:17 +02:00
Girish Ramakrishnan acc2b5a1a3 remove unused param 2020-03-28 22:05:43 -07:00
Girish Ramakrishnan b06feaa36b more changes 2020-03-28 17:48:55 -07:00
Girish Ramakrishnan ad48bc0ee8 mail: refresh in the background 2020-03-28 17:48:11 -07:00
Girish Ramakrishnan ba0e5d0b59 query 1000 aliases and mailboxes
we don't handle pagination yet. it's not needed
2020-03-28 17:35:53 -07:00
Girish Ramakrishnan 1c5ff88e3c Use space instead of command for tag-input
this makes sure that email aliases wrap. if we used comma, it does not wrap
2020-03-28 16:46:19 -07:00
Johannes Zellner 89cf8a455a Allow turn and stun service ports 2020-03-28 23:33:44 +01:00
Johannes Zellner 710046a94f Add coturn addon service 2020-03-28 22:46:32 +01:00
Johannes Zellner b366b0fa6a Stop container with isCloudronManged labels instead of by network 2020-03-28 22:46:32 +01:00
Girish Ramakrishnan f9e7a8207a cloudron-support: make it --owner-login 2020-03-27 18:58:12 -07:00
Johannes Zellner 6178bf3d4b Update sftp addon 2020-03-27 14:54:35 +01:00
Girish Ramakrishnan f3b979f112 More 5.0.6 changelog 2020-03-26 21:56:18 -07:00
Girish Ramakrishnan bf7d4a550e ftp apps can be set a per-app password
this is useful for use in ftp clients
2020-03-26 21:50:44 -07:00
Girish Ramakrishnan 9faae96d61 make app password work with sftp 2020-03-26 21:50:25 -07:00
Girish Ramakrishnan 2135fe5dd0 5.0.6 changelog
(cherry picked from commit 3c1a1f1b81)
2020-03-26 19:32:58 -07:00
Girish Ramakrishnan 324bc763fc mail eventlog is owner only 2020-03-26 18:56:32 -07:00
Girish Ramakrishnan 007a8d248d make eventlog routes owner only 2020-03-26 18:54:16 -07:00
Girish Ramakrishnan f9fb2ca3a1 Fixup users filter 2020-03-26 18:32:49 -07:00
Girish Ramakrishnan b5eac7c91b email: add type filter to eventlog 2020-03-25 22:07:01 -07:00
Girish Ramakrishnan 58d4a3455b email: add type filter to eventlog 2020-03-25 22:05:49 -07:00
Johannes Zellner 3c858ca0fd Only show the progress bar when task is actually active 2020-03-26 00:22:46 +01:00
Johannes Zellner da9d634b83 Remove already hidden task stop button 2020-03-26 00:19:50 +01:00
Johannes Zellner 128704400f Hook up task cancel action 2020-03-26 00:19:06 +01:00
Johannes Zellner a3594322bd Show task cancel button after 5min 2020-03-26 00:16:23 +01:00
Girish Ramakrishnan fe4b3d5f1d branding: use separate css 2020-03-25 08:56:56 -07:00
Girish Ramakrishnan 8e3c14f245 5.0.5 changes
(cherry picked from commit cc6ddf50b1)
2020-03-25 08:13:38 -07:00
Johannes Zellner da08da2b54 Use footer info from settings to show empty on default 2020-03-25 07:00:53 +01:00
Johannes Zellner 5deb5f79bd Ensure textareas don't overflow horizontally on resize 2020-03-25 06:58:38 +01:00
Johannes Zellner 9f0d694f0a Prevent angular crash when adding already existing tag 2020-03-25 06:51:42 +01:00
Johannes Zellner 4153fb7d1e Use theme for tag-input tags 2020-03-25 06:51:42 +01:00
Johannes Zellner 6994ec0f03 Allow to click anywhere in tag-input for focus 2020-03-25 06:51:42 +01:00
Johannes Zellner e1af60cfa9 Fix tag-input with flex layout to better overflow 2020-03-25 06:51:42 +01:00
Johannes Zellner 7bcec61e6d Make tag-input support dirty handling on tag deletion 2020-03-25 06:51:42 +01:00
Girish Ramakrishnan 91af2495a6 Make key validation work for ecc certs 2020-03-24 21:20:21 -07:00
Girish Ramakrishnan 7d7df5247b Update cipher suite based on ssl-config recommendation
ssl_prefer_server_ciphers off is the recommendation since the cpihers
are deprecated

https://serverfault.com/questions/997614/setting-ssl-prefer-server-ciphers-directive-in-nginx-config
2020-03-24 19:24:58 -07:00
Girish Ramakrishnan f99450d264 Enable TLSv1.3 and remove TLSv1 and 1.1
IE10 does not have 1.2, so maybe we can risk it

As per Android documentaion TLS 1.2 is fully supported after API level 20/Android 5(Lolipop)

https://discussions.qualys.com/thread/17020-tls-12-support-for-android-devices
https://www.ryandesignstudio.com/what-is-tls/
2020-03-24 14:37:08 -07:00
Girish Ramakrishnan dde287f05d avatar size is 128px 2020-03-24 13:04:12 -07:00
Girish Ramakrishnan d3eeb5f48a mail: disable host and proto mismatch 2020-03-24 11:50:52 -07:00
Girish Ramakrishnan 1e8a02f91a Make token expiry a year
we now have a UI to invalid all tokens easily, so this should be OK.
2020-03-23 21:51:13 -07:00
Girish Ramakrishnan 97c3bd8b8e mail: incoming mail from dynamic hostnames was rejected 2020-03-23 21:50:36 -07:00
Girish Ramakrishnan 09ce27d74b bump default token expiry to a month 2020-03-21 18:46:38 -07:00
Girish Ramakrishnan 2447e91a9f mail: throttle denied events 2020-03-20 14:04:16 -07:00
Girish Ramakrishnan e6d881b75d Use owner email for LE certs
https://forum.cloudron.io/topic/2244/email-contact-on-let-s-encrypt-ssl-tls-certificates-uses-password-recovery-email-rather-than-primary-email-address
2020-03-20 13:39:58 -07:00
Girish Ramakrishnan 27fc37e55c descriptive mail eventlog 2020-03-20 13:05:58 -07:00
Girish Ramakrishnan ad901760f6 move footer to separate section 2020-03-19 23:28:22 -07:00
Girish Ramakrishnan 973029865e Branding UI changes 2020-03-19 22:59:30 -07:00
Girish Ramakrishnan 52e4fedd16 fieldset must be inside form 2020-03-19 19:26:19 -07:00
Girish Ramakrishnan b81ba49370 CPU shares is a percent 2020-03-19 17:15:08 -07:00
Girish Ramakrishnan 39a0f93f69 add cpuShares 2020-03-19 17:11:51 -07:00
Girish Ramakrishnan 53cb83eacc eventlog: add start/stop/restart logs 2020-03-19 17:05:50 -07:00
Girish Ramakrishnan 36f963dce8 remove unncessary debug in routes 2020-03-19 17:05:31 -07:00
Girish Ramakrishnan 1b15d28212 eventlog: add start/stop/restart logs 2020-03-19 17:02:55 -07:00
Girish Ramakrishnan b307d278b0 mailboxName should have lower priority than location change 2020-03-19 16:48:46 -07:00
Girish Ramakrishnan 4e0c15e102 use short form syntax 2020-03-19 16:48:31 -07:00
Girish Ramakrishnan c9e40f59de bump the timeout for really slow disks 2020-03-19 13:33:53 -07:00
Girish Ramakrishnan 14348eba38 Move name and logo into branding page 2020-03-18 22:11:33 -07:00
Girish Ramakrishnan cead5b74ae if ldap is noop, show a message 2020-03-18 21:44:55 -07:00
Girish Ramakrishnan 2e2a945f7c add custom apps link 2020-03-18 21:25:19 -07:00
Girish Ramakrishnan 0e3ae2b450 add new branding view 2020-03-18 17:53:50 -07:00
Girish Ramakrishnan 19e2df65ca backups: hide configure button for non-owners 2020-03-18 17:24:20 -07:00
Girish Ramakrishnan 38cf31885c Make backup configure owner only 2020-03-18 17:23:23 -07:00
Girish Ramakrishnan 565d715a66 remove extra break 2020-03-18 13:43:15 -07:00
Girish Ramakrishnan abe6f55aa6 gcdns: fix add/save 2020-03-17 22:51:47 -07:00
Girish Ramakrishnan c278d0c5d4 bring back reboot button 2020-03-17 22:26:01 -07:00
Girish Ramakrishnan 4420470242 comcast does not allow port 25 check anymore 2020-03-17 13:55:35 -07:00
Girish Ramakrishnan 9b05786615 appstore: add whitelist/blacklist 2020-03-15 17:20:48 -07:00
Girish Ramakrishnan 725b2c81ee custom.yml is obsolete 2020-03-15 16:50:42 -07:00
Girish Ramakrishnan 661965f2e0 Add branding tests 2020-03-15 16:38:15 -07:00
Girish Ramakrishnan 7e0ef60305 Fix incorrect role comparison 2020-03-15 16:19:22 -07:00
Girish Ramakrishnan 2ac0fe21c6 ghost file depends on base dir 2020-03-15 11:41:39 -07:00
Girish Ramakrishnan b997f2329d make branding route for owner only 2020-03-15 11:39:02 -07:00
Girish Ramakrishnan 23ee758ac9 do not check for updates for stopped apps 2020-03-15 09:48:08 -07:00
Girish Ramakrishnan a7e2c74158 more linode warnings 2020-03-13 12:05:47 -07:00
Girish Ramakrishnan 9ea12e71f0 linode: dns backend
the dns is very slow - https://github.com/certbot/certbot/pull/6320
takes a good 15 minutes at minimum to propagate

https://certbot-dns-linode.readthedocs.io/en/stable/
https://www.linode.com/community/questions/17296/linode-dns-propagation-time
2020-03-13 11:44:43 -07:00
Girish Ramakrishnan d84900d601 linode: dns frontend 2020-03-13 11:32:30 -07:00
Girish Ramakrishnan fdda28d67f lint 2020-03-12 17:07:17 -07:00
Girish Ramakrishnan d3594c2dd6 change ownership of ghost file for good measure 2020-03-12 10:30:51 -07:00
Girish Ramakrishnan 6ee4b0da27 Move out ghost file to platformdata
Since /tmp is world writable this might cause privilege escalation

https://forum.cloudron.io/topic/2222/impersonate-user-privilege-escalation
2020-03-12 10:24:21 -07:00
Girish Ramakrishnan 3e66feb514 mail: add mailbox acl 2020-03-10 22:12:15 -07:00
Girish Ramakrishnan cd91a5ef64 5.0.3 changes 2020-03-10 17:18:21 -07:00
Girish Ramakrishnan cf89609633 mail: acl was enabled by mistake 2020-03-10 17:15:23 -07:00
Girish Ramakrishnan 67c24c1282 mail: make spamd_user case insensitive 2020-03-10 12:08:43 -07:00
Girish Ramakrishnan 7d3df3c55f Fix sa usage 2020-03-10 09:22:41 -07:00
Johannes Zellner e00dccaa7c Set autofocus in setupdns view 2020-03-09 16:08:55 -07:00
Johannes Zellner 08c1a33362 Ensure tabindex works better in setupdns 2020-03-09 16:07:10 -07:00
Girish Ramakrishnan dfe5cec46f Show the public IP to finish setup 2020-03-09 15:18:39 -07:00
Johannes Zellner 31e3c8da30 Update feature test comments 2020-03-09 14:19:12 -07:00
Girish Ramakrishnan 17c881da47 Fix spam training 2020-03-09 13:51:17 -07:00
Girish Ramakrishnan 62a6095ed7 remove obsolete mail events 2020-03-09 13:49:22 -07:00
Johannes Zellner 4c2c0e2b95 Fix login footer 2020-03-09 13:32:49 -07:00
Johannes Zellner d36e4937d4 Mark backup folder in backup config as required 2020-03-09 13:28:06 -07:00
Johannes Zellner fea48e8220 Do not show noop provider for external ldap 2020-03-09 13:04:44 -07:00
Girish Ramakrishnan 6e30c4917c Do not wait for dns when re-configured 2020-03-09 12:36:29 -07:00
Girish Ramakrishnan c6d4f0d2f0 mail: fix word boundary regexp 2020-03-07 19:16:10 -08:00
Girish Ramakrishnan b32128bebf Fix quoting in emails 2020-03-07 19:12:39 -08:00
Girish Ramakrishnan a3f3d86908 More spam fixes 2020-03-07 18:52:20 -08:00
Girish Ramakrishnan b29c82087a Bump the mail container version 2020-03-07 17:08:35 -08:00
Johannes Zellner 657beda7c9 Copy 5.0.0 changes for 5.0.1 2020-03-07 16:56:40 -08:00
Girish Ramakrishnan 637a59136b email size can be 0 unlike disk size 2020-03-07 16:09:44 -08:00
Girish Ramakrishnan b4f5ecb304 mail: fix eventlog search 2020-03-07 15:56:56 -08:00
Girish Ramakrishnan 3dabad5e91 Detect that domain is in use by app correctly 2020-03-07 14:52:34 -08:00
Johannes Zellner 385d275f59 Another attempt on fixing the user edit with roles business 2020-03-07 14:05:58 -08:00
Johannes Zellner 890b46836b Do not allow lower level roles to edit higher level ones 2020-03-07 13:53:01 -08:00
Girish Ramakrishnan 835b3224c6 disable getting user token in demo mode 2020-03-07 11:44:38 -08:00
Girish Ramakrishnan f8d27f3139 mail: Fix ownership issue with /app/data 2020-03-07 11:40:49 -08:00
Johannes Zellner e240ac1fa5 Disable subscription UI in demo mode 2020-03-07 10:00:32 -08:00
Johannes Zellner 4f020c1ec7 Do not allow the admin to edit the owner 2020-03-07 02:25:57 -08:00
Johannes Zellner 237decb81e Dont not show all those mail events 2020-03-07 02:21:21 -08:00
Johannes Zellner 1c98cba36d Show busy state on webtoken logout 2020-03-07 01:59:38 -08:00
Girish Ramakrishnan 33f263ebb9 Fix spamd logs 2020-03-07 01:00:08 -08:00
Girish Ramakrishnan 027925c0ba Only do spam processing when we have incoming domains 2020-03-07 00:22:00 -08:00
Girish Ramakrishnan 21fb815adc inform user that it takes a while 2020-03-07 00:15:19 -08:00
Girish Ramakrishnan 6b729bd9b5 typo 2020-03-07 00:07:36 -08:00
Girish Ramakrishnan 17c4819d41 eventlog updates 2020-03-06 23:16:32 -08:00
Girish Ramakrishnan a7ee869c8e Remove the source from eventlog 2020-03-06 23:11:26 -08:00
Girish Ramakrishnan bbbe3cc92f spam-selectdb is only new users now 2020-03-06 22:56:00 -08:00
Girish Ramakrishnan c1770c8d90 spam filter seeding begin/end 2020-03-06 22:44:30 -08:00
Girish Ramakrishnan 71b7e68937 5 rows 2020-03-06 20:43:57 -08:00
Girish Ramakrishnan dbca88829a Just put a hyphen 2020-03-06 20:38:48 -08:00
Girish Ramakrishnan ebd365a156 Alt message for spam-selectdb when users is empty 2020-03-06 19:34:51 -08:00
Johannes Zellner 017d19a8c8 Do not send internal link for update notification 2020-03-06 19:18:01 -08:00
Girish Ramakrishnan 46b6e319f5 add some spacing in the footer 2020-03-06 19:13:37 -08:00
Johannes Zellner 698a20396c Always open markdown links in new tab 2020-03-06 19:11:39 -08:00
Johannes Zellner ffc2507362 Ensure we trim the footer content 2020-03-06 18:21:34 -08:00
Johannes Zellner 8f087e1c30 Take default footer from constants and keep settingsdb pristine 2020-03-06 18:08:26 -08:00
Johannes Zellner 038d6fe2c3 For immediate update of the footer and cloudron name we have to rely on config here 2020-03-06 17:57:38 -08:00
Johannes Zellner 34c8baa744 Pick public info from status object 2020-03-06 17:57:38 -08:00
Johannes Zellner c3fc0e83a8 Optimize collectd restart to be skipped if profile hasn't actually changed 2020-03-06 17:44:31 -08:00
Johannes Zellner 7ed0ef7b37 Ensure collectd backup config on startup 2020-03-06 17:44:31 -08:00
Girish Ramakrishnan 52a8081d0f no padding for footer links 2020-03-06 17:28:14 -08:00
Girish Ramakrishnan 46ede3d60d search for request_uri in try_files
this lets us put images in app_not_responding.html
2020-03-06 17:01:48 -08:00
Johannes Zellner 23813aa346 Make admins got to app configure when app task is active 2020-03-06 16:41:17 -08:00
Girish Ramakrishnan 7a63fd4711 Failed quickly if docker image not found 2020-03-06 16:39:20 -08:00
Johannes Zellner 7d034a4b0b Show apptask progress label directly 2020-03-06 16:25:21 -08:00
Girish Ramakrishnan 65f573b773 mail container update 2020-03-06 16:11:52 -08:00
Johannes Zellner 7e41f2ef35 Further improve email eventlog 2020-03-06 14:42:08 -08:00
Johannes Zellner f49dd31804 Reduce columns in mail event log 2020-03-06 13:35:34 -08:00
Johannes Zellner afa2fe8177 Improve role add/edit error message 2020-03-06 13:16:50 -08:00
Johannes Zellner cf9e116388 Pipe backend error message on user deletion 2020-03-06 13:15:57 -08:00
Girish Ramakrishnan ad72a8a929 Add comment 2020-03-06 13:05:31 -08:00
Johannes Zellner 2a8d6f37c4 Disable roles the current user cannot assign 2020-03-06 12:33:36 -08:00
Johannes Zellner d5930fd859 Show error on user deletion if not allowed 2020-03-06 12:23:50 -08:00
Johannes Zellner a7b00bad63 Fixup status code typo 2020-03-06 11:59:31 -08:00
Johannes Zellner 85fd74135c Bring back legacy ldap mailbox search for old sogo 2020-03-06 11:48:51 -08:00
Johannes Zellner f1e0167e1b Only fetch subscription for owners 2020-03-06 11:42:27 -08:00
Johannes Zellner 2d74c62054 Hide subscription status display for non-owners 2020-03-06 11:40:30 -08:00
Johannes Zellner 9249f28e68 Replace default logos with our own icon in colors 2020-03-06 11:21:32 -08:00
Girish Ramakrishnan 1273dbde76 Better icon for owner 2020-03-06 11:14:25 -08:00
Girish Ramakrishnan 966960c64b cpu share: add step and better ticks 2020-03-06 10:40:21 -08:00
Johannes Zellner 19e2919d5b Add reconnect handler and make reboot state better reflected in the notfications 2020-03-06 02:38:21 -08:00
Girish Ramakrishnan 1555b143a9 strip .tar.gz/.tar.gz.enc ending for all backup ids 2020-03-06 02:31:26 -08:00
Girish Ramakrishnan f1c2679137 typo 2020-03-06 02:09:44 -08:00
Girish Ramakrishnan 49e9bd3ca6 Add linode to restore UI 2020-03-06 01:47:07 -08:00
Johannes Zellner 6d9fe0410d Use branded footer in login and account setup pages 2020-03-06 01:44:08 -08:00
Girish Ramakrishnan 11419365ca Move help text after footer heading 2020-03-06 01:18:51 -08:00
Girish Ramakrishnan 970ccf1ddb send footer in status route
required for login screen to be customized
2020-03-06 01:16:48 -08:00
Johannes Zellner a9767ac29a Make use of new support feature flag 2020-03-06 01:08:55 -08:00
Johannes Zellner b237eb03f6 Add support feature flag 2020-03-06 01:08:45 -08:00
Girish Ramakrishnan a569294f86 Better changelog 2020-03-06 01:03:52 -08:00
Johannes Zellner 16f85a23d2 Clear reboot notification if reboot is triggered 2020-03-06 00:49:00 -08:00
Johannes Zellner fcee8aa5f3 Improve LDAP mailbox searches to better suit sogo 2020-03-06 00:48:41 -08:00
Johannes Zellner efbf78ed00 Improve notification dismiss action button 2020-03-05 21:14:19 -08:00
Johannes Zellner 1f0965fdf6 Implement specific reboot notification action 2020-03-05 21:14:19 -08:00
Johannes Zellner 0ea2f48d94 Avoid tooltip flickering on mouse events 2020-03-05 21:14:19 -08:00
Johannes Zellner 547b351f40 Move setup subscription button in app install dialog to the right 2020-03-05 21:14:19 -08:00
Girish Ramakrishnan c9f0166c3d Other -> Ubuntu 2020-03-05 21:05:31 -08:00
Johannes Zellner d85eabce02 Update reboot required notification text 2020-03-05 21:01:15 -08:00
Johannes Zellner de23d1aa03 Do not allow to set active flag for the operating user 2020-03-05 21:00:59 -08:00
Johannes Zellner 0de106f23d Disable app access submit when no group or user is selected 2020-03-05 20:15:17 -08:00
Girish Ramakrishnan 854281417d various app password ui fixes 2020-03-05 20:11:07 -08:00
Johannes Zellner 4d35fde8ba remove extra br for normal users in profile page 2020-03-05 20:10:01 -08:00
Johannes Zellner 754c9eff9e Rename system to system info 2020-03-05 18:28:11 -08:00
Johannes Zellner aca5a876d8 Move disk usage to system 2020-03-05 18:28:11 -08:00
Girish Ramakrishnan 7a817319ba Better text for password 2020-03-05 17:52:28 -08:00
Johannes Zellner f01ed81472 Remove feature to show old notifications 2020-03-05 17:31:03 -08:00
Johannes Zellner 942c755a5b Some better avatar overlay 2020-03-05 17:28:25 -08:00
Johannes Zellner 392da50f2c Show cloudron name in account setup view 2020-03-05 17:08:10 -08:00
Johannes Zellner dffaaf067d Show cloudron name in login view 2020-03-05 17:03:32 -08:00
Girish Ramakrishnan d663930d66 Fix casing of password changed 2020-03-05 17:02:52 -08:00
Girish Ramakrishnan 9291b6a489 Fixup text 2020-03-05 16:54:39 -08:00
Johannes Zellner 53abc1171e Remove toplevel doc links 2020-03-05 16:31:41 -08:00
Johannes Zellner 7f95e11af1 Do not send active or role attributes for own user while edit 2020-03-05 16:23:27 -08:00
Johannes Zellner 256676cb9d Allow to refresh users without showing busy state 2020-03-05 16:14:03 -08:00
Johannes Zellner 6180c0dc69 Add help button for user roles 2020-03-05 16:05:11 -08:00
Johannes Zellner e44ae4a0a0 Swap role and group in user add dialog 2020-03-05 16:04:05 -08:00
Johannes Zellner 8221e6a148 User permissions property is gone 2020-03-05 15:57:42 -08:00
Girish Ramakrishnan 6603c48fd9 Fixup text 2020-03-05 15:49:43 -08:00
Johannes Zellner 1766bc6ee3 For now we enable all features 2020-03-05 13:37:07 -08:00
Girish Ramakrishnan c1801d6e71 Add linode-oneclick provider 2020-03-05 11:25:43 -08:00
Girish Ramakrishnan 3665d7cab7 Add linode to import UI 2020-03-05 11:24:42 -08:00
Johannes Zellner 27da68dc4b Fix gcdns provider configuration 2020-03-04 18:53:53 -08:00
Johannes Zellner 5695d555e5 Prevent eventlog filter from crashing 2020-03-04 15:07:35 -08:00
Girish Ramakrishnan 64844045ca mail: various pam related fixes 2020-03-04 15:00:37 -08:00
Johannes Zellner 08a6ad8bd3 Fix long-term hover bug in cog icon 2020-03-04 14:33:33 -08:00
Johannes Zellner 66a95fb130 Eventlog is available to all again
This is not actually the same as a business type audit log
2020-03-04 14:17:31 -08:00
Johannes Zellner 6eca1dfb83 Revert "Rename eventlog to audit trail"
This reverts commit fef854580d.
2020-03-04 14:15:32 -08:00
Girish Ramakrishnan fb5e2ef671 Throw error object and not a string 2020-03-03 11:07:56 -08:00
Girish Ramakrishnan e90da46967 spam: add default corpus and global db 2020-03-02 21:45:48 -08:00
Girish Ramakrishnan 3cb15f0097 linode: add frankfurt 2020-03-02 20:03:02 -08:00
Johannes Zellner 7367932f2c Reword tooltip when adding users is blocked 2020-02-28 20:51:56 +01:00
Girish Ramakrishnan d10957d6df remove galaxygate from cloudron-setup help 2020-02-28 11:14:06 -08:00
Girish Ramakrishnan 50dc90d7ae remove galaxygate 2020-02-28 11:13:44 -08:00
Johannes Zellner fef854580d Rename eventlog to audit trail 2020-02-28 19:43:09 +01:00
Johannes Zellner 102a0a40a6 Make all only in paid version displays the same 2020-02-28 19:27:19 +01:00
Johannes Zellner 663bedfe39 Sync default features 2020-02-28 15:18:16 +01:00
Girish Ramakrishnan ce9834757e restore: carefully replace backup config
do not replace the backup policy and other flags
2020-02-27 12:38:37 -08:00
Girish Ramakrishnan 0515b650ca mail from validation: add busy indicator 2020-02-27 10:47:14 -08:00
Girish Ramakrishnan 3c7e28c768 mail relay: wait for mail container to restart 2020-02-27 10:42:33 -08:00
Girish Ramakrishnan e528cf5692 Fix crash in statusOk computation 2020-02-27 10:37:21 -08:00
Girish Ramakrishnan cc932328ff fix comment 2020-02-27 10:36:35 -08:00
Girish Ramakrishnan 4ebe143a98 improve the error message on domain removal 2020-02-27 10:12:39 -08:00
Girish Ramakrishnan dfe2eee0b9 Fix crash when no mailbox usage present 2020-02-27 10:11:00 -08:00
Girish Ramakrishnan 60f42e342b better message 2020-02-27 10:08:41 -08:00
Johannes Zellner 958f738820 Fix app mailbox form state 2020-02-27 16:04:11 +01:00
Johannes Zellner 2d2989a425 Fix add user button state 2020-02-27 15:10:56 +01:00
Johannes Zellner 3c3370b929 Check mail state depending on relay used or not 2020-02-27 13:27:45 +01:00
Johannes Zellner 82aff74fc2 Make app passwords stronger 2020-02-27 13:07:01 +01:00
Girish Ramakrishnan 6adc099455 Fix crash 2020-02-26 15:49:41 -08:00
Girish Ramakrishnan 90b22196b1 add linode objectstorage backend 2020-02-26 10:12:26 -08:00
Girish Ramakrishnan 35efc8c650 add linode objectstorage backend 2020-02-26 09:08:30 -08:00
Girish Ramakrishnan 3f63d79905 Fixup version of next release 2020-02-26 09:01:48 -08:00
Girish Ramakrishnan 00096f4dcd fix comment 2020-02-26 09:01:35 -08:00
Johannes Zellner e7b9c2d294 Disable role selection for Cloudrons with user restriction 2020-02-26 16:48:51 +01:00
Johannes Zellner a3830d23e8 Move Email menu entry back to old place 2020-02-26 15:03:17 +01:00
Johannes Zellner d83eb32b6e Remove code for now dead spaces feature 2020-02-26 13:51:00 +01:00
Girish Ramakrishnan 303c55dbba Show busy indicator in reboot button 2020-02-25 14:58:29 -08:00
Girish Ramakrishnan c3e0d9086e cloudron-support: backups and appsdata can be empty 2020-02-24 14:12:25 -08:00
Girish Ramakrishnan afde058a85 capitalize 2020-02-24 11:58:25 -08:00
Girish Ramakrishnan f1dfe3c7e8 mail: Fix crash when determining usage 2020-02-24 11:45:17 -08:00
Johannes Zellner 14397cab96 Hide external ldap view for non-admins 2020-02-24 18:01:42 +01:00
Johannes Zellner a78eec79a8 Fix users view for user manager role 2020-02-24 17:49:36 +01:00
Johannes Zellner 6f96ff790f Groups are part of user manager role 2020-02-24 17:49:22 +01:00
Johannes Zellner 7ce4effc2d Remove all .admin usage 2020-02-24 17:29:20 +01:00
Johannes Zellner 2674160acc Fix error form state when adding a new domain 2020-02-24 17:29:10 +01:00
Johannes Zellner f1c951c997 User creation and edit apis don't take admin flag anymore 2020-02-24 17:15:50 +01:00
Johannes Zellner a17d810fea Only auto-login the owner for subscription setup 2020-02-24 15:10:21 +01:00
Johannes Zellner 4b1cb76eaf Remove unused angular filter for oauth clients 2020-02-24 14:36:52 +01:00
Johannes Zellner 6b89b2be5e Remove tokens view for good 2020-02-24 14:36:35 +01:00
Johannes Zellner 92bfda9028 Remove admin usage in main view 2020-02-24 14:34:12 +01:00
Johannes Zellner 728d50461f Fix app password usage for non-admins 2020-02-24 13:29:47 +01:00
Johannes Zellner 3f92204de5 Fix indentation 2020-02-24 13:23:47 +01:00
Johannes Zellner ccb218f243 setPassword wants the full user object 2020-02-24 13:21:17 +01:00
Johannes Zellner 0e6c9177f0 Migrate most of .admin usage 2020-02-24 12:56:13 +01:00
Johannes Zellner 3c0e674ee5 Fixup user list icons and set default add to 'user' 2020-02-24 12:22:07 +01:00
Girish Ramakrishnan 9ac194bbea fix missing quote in debug message 2020-02-23 11:15:30 -08:00
Girish Ramakrishnan 0191907ce2 mail: use limit plugin instead of rcpt_to.max_count 2020-02-23 11:15:30 -08:00
Johannes Zellner 15c9052912 Move role selector up 2020-02-22 17:51:30 +01:00
Johannes Zellner e80069625b Fix typo in migration script 2020-02-22 15:26:16 +01:00
Girish Ramakrishnan 7061880104 derive admin flag from roles 2020-02-21 16:55:39 -08:00
Girish Ramakrishnan 0e156b9376 migrate permissions and admin flag to user.role 2020-02-21 16:49:20 -08:00
Johannes Zellner 6f12cde2e8 Add user role dropdown
Also pass `role` instead of `permissions`
Once done ng-disable/ng-hide based on userInfo.role
2020-02-21 21:15:54 +01:00
Johannes Zellner 52d454276d Use new subscription setup flow for app install dialog 2020-02-21 14:07:46 +01:00
Johannes Zellner 81fb4ab435 Add appstore accessToken to subscription setup links 2020-02-21 13:08:20 +01:00
Johannes Zellner a8f1b0241e Add route to obtain an appstore accessToken 2020-02-21 12:34:54 +01:00
Girish Ramakrishnan af8bb1f0e8 Add email view summary 2020-02-20 12:36:05 -08:00
Girish Ramakrishnan 5fd575a217 display usage info 2020-02-20 12:36:05 -08:00
Girish Ramakrishnan 6715cf23d7 Add mail usage info 2020-02-20 12:09:06 -08:00
Girish Ramakrishnan 82a173f7d8 proxy requests to mail server 2020-02-20 10:10:34 -08:00
Johannes Zellner 857504c409 Add function to retrieve appstore user access token 2020-02-20 17:05:07 +01:00
Johannes Zellner 4b4586c1e5 Get features from the appstore 2020-02-20 16:04:22 +01:00
Girish Ramakrishnan 6679fe47df mail: add X-Envelope-From/To headers 2020-02-19 22:14:23 -08:00
Girish Ramakrishnan e7a98025a2 disable update of domain in demo mode
we removed the locked flag, so we have to add this check
2020-02-19 10:45:55 -08:00
Johannes Zellner 1ef5fd1a0f Only show support ticket and remote support UI for paid plans 2020-02-19 14:19:46 +01:00
Girish Ramakrishnan 932de7dba7 mail: display source 2020-02-18 21:31:35 -08:00
Girish Ramakrishnan 2870f24bec mail eventlog: add remote info 2020-02-18 21:31:28 -08:00
Girish Ramakrishnan 037440034b Move collectd logs to platformdata and rotate it 2020-02-18 20:36:50 -08:00
Girish Ramakrishnan 84310336bd Add search param 2020-02-18 09:46:52 -08:00
Johannes Zellner aba233c74a Add permissions UI 2020-02-17 14:05:26 +01:00
Johannes Zellner 15cc1f92e3 Fix typo 2020-02-17 13:47:21 +01:00
Girish Ramakrishnan 00c6ad675e add usermanager tests 2020-02-14 14:34:29 -08:00
Girish Ramakrishnan 655a740b0c split tests into various sections 2020-02-14 14:04:51 -08:00
Girish Ramakrishnan 028852740d Make users-test work 2020-02-14 13:23:17 -08:00
Johannes Zellner 016e2b375d Add commented test block for features 2020-02-14 20:45:23 +01:00
Johannes Zellner 732b1ae0de Improve business plan placeholders 2020-02-14 20:45:23 +01:00
Girish Ramakrishnan ae0c0f957e Show 20 per page by default 2020-02-14 09:04:57 -08:00
Johannes Zellner 4283046e76 Add footer branding configuration 2020-02-14 15:34:44 +01:00
Johannes Zellner 0a126a15ba Add branding section with footer configuration 2020-02-14 15:22:16 +01:00
Johannes Zellner c8000fdf90 Fix the features selection 2020-02-14 15:21:56 +01:00
Johannes Zellner 995e56d7e4 Also grant education and contributor subscriptions all features 2020-02-14 15:13:21 +01:00
Johannes Zellner c20d3b62b0 Determin features based on subscription and cloudron creation 2020-02-14 15:07:25 +01:00
Johannes Zellner 21e7190b72 Remove subscription setup modal, instead open cloudron.io directly 2020-02-14 14:16:04 +01:00
Girish Ramakrishnan c537dfabb2 add manage user permission 2020-02-13 22:49:58 -08:00
Girish Ramakrishnan 11b5304cb9 userdb: only pass specific fields to update 2020-02-13 22:45:14 -08:00
Girish Ramakrishnan fd8abbe2ab remove ROLE_USER
every authenticated user has ROLE_USER. So, this role is superfluous
2020-02-13 21:53:57 -08:00
Girish Ramakrishnan 25d871860d domains: remove locked field
we will do this as part of access control if needed later
2020-02-13 21:16:46 -08:00
Girish Ramakrishnan 9fcd049bdc domain.locked is gone 2020-02-13 21:15:09 -08:00
Girish Ramakrishnan d1911be28c user: load the resource with middleware 2020-02-13 20:59:17 -08:00
Girish Ramakrishnan bc31ea5eb7 mail: move the next/prev page buttons to header
aligns with other ui like activity and mailbox
2020-02-13 09:12:59 -08:00
Girish Ramakrishnan 938ca6402c mail: add search param 2020-02-13 09:08:47 -08:00
Johannes Zellner 35dd92f54e If maxUserCount is not set allow all 2020-02-13 17:09:42 +01:00
Johannes Zellner 0aaecf6e46 Cannot use Infinity 2020-02-13 17:09:28 +01:00
Johannes Zellner 0a29f92384 Use features from config object 2020-02-13 16:34:37 +01:00
Johannes Zellner b06d84984b Add features to config object 2020-02-13 16:34:29 +01:00
Johannes Zellner a13414ddb9 Add feature object and show/hide elements accordingly 2020-02-13 15:30:31 +01:00
Johannes Zellner 3dd0566f48 fix empty eventlog label display 2020-02-13 13:03:57 +01:00
Johannes Zellner 8b3bc28120 add eventlog refresh button 2020-02-13 12:01:47 +01:00
Johannes Zellner 8051d6ba48 Add pagination to eventlog 2020-02-13 12:01:47 +01:00
Girish Ramakrishnan 51b50688e4 mail eventlog: fix bounce event 2020-02-12 23:33:43 -08:00
Girish Ramakrishnan 43b49ef4c9 cleanup mail eventlog ui 2020-02-12 23:30:15 -08:00
Girish Ramakrishnan 066d7ab972 Update mail container 2020-02-12 22:11:11 -08:00
Johannes Zellner 8ca51f1877 Show last 5 new apps 2020-02-12 23:24:33 +01:00
Johannes Zellner 59c5f22dbd Show mail eventlog type also as icon 2020-02-12 15:52:39 +01:00
Johannes Zellner a92dc1ad73 Make eventlog display work 2020-02-12 15:37:05 +01:00
Johannes Zellner fd72a00cfb Fixup raw email logs button layout 2020-02-12 14:52:38 +01:00
Johannes Zellner e9d10d6f2f Add action button to send test mail in global mail view 2020-02-12 14:51:06 +01:00
Johannes Zellner fa630a6cb5 Show mail status per domain in overview 2020-02-12 14:10:21 +01:00
Girish Ramakrishnan e092074d77 2020 is unused 2020-02-11 22:12:34 -08:00
Girish Ramakrishnan 83bdcb8cc4 remove unused domain stats route 2020-02-11 22:10:57 -08:00
Girish Ramakrishnan 135548a03b mail: add js code to get eventlog 2020-02-11 22:07:58 -08:00
Girish Ramakrishnan 304c930f95 Fix comment 2020-02-11 21:27:16 -08:00
Girish Ramakrishnan f80f40cbcd repair: take optional docker image for re-configure 2020-02-11 21:05:01 -08:00
Girish Ramakrishnan 4b93b31c3d SCOPE_* vars are unused now 2020-02-11 17:37:12 -08:00
Johannes Zellner 48991e22b1 Move Email menu entry toplevel
Not sure about that, but lets see until we make a release
2020-02-11 21:10:36 +01:00
Johannes Zellner 132a375347 Separate emails and email view 2020-02-11 21:06:34 +01:00
Girish Ramakrishnan 4d050725b7 storage: done events must be called next tick
It seems that listDir() returns synchronously (!), not sure how.
This results in the done event getting called with an error but
the EE event handlers are not setup yet.
2020-02-11 11:48:49 -08:00
Girish Ramakrishnan 57597bd103 s3: bucket name cannot contain / 2020-02-11 11:19:47 -08:00
Girish Ramakrishnan fb52c2b684 backupupload: it is either result or message 2020-02-11 10:03:26 -08:00
Johannes Zellner 1392abe2c0 Fix password length error message 2020-02-11 16:45:20 +01:00
Johannes Zellner fde07fda55 Passwords must be between 8 and 256 characters 2020-02-11 15:33:40 +01:00
Johannes Zellner b9c4928949 Add missing token description 2020-02-11 09:54:57 +01:00
Girish Ramakrishnan de547df9bd Show docker image in the error 2020-02-10 21:54:08 -08:00
Girish Ramakrishnan a05342eaa0 Add mail eventlog 2020-02-10 15:36:30 -08:00
Girish Ramakrishnan fb931b7a3a More 4.5 changes 2020-02-10 14:32:15 -08:00
Girish Ramakrishnan d2025d5ddf Show logs in browser timezone 2020-02-10 14:13:26 -08:00
Girish Ramakrishnan 113ae1cfa5 add note on utc to tz conversion 2020-02-10 13:49:59 -08:00
Girish Ramakrishnan a0f2039fd4 eventlog: wrong tooltip 2020-02-10 13:49:59 -08:00
Girish Ramakrishnan d1c07b6d30 cron: rework recreation of jobs based on timezone 2020-02-10 13:12:20 -08:00
Johannes Zellner 7f0ad2afa0 Move login tests to cloudron route tests 2020-02-10 16:40:07 +01:00
Johannes Zellner d8e0639db4 Empty or missing username/password results in 400 2020-02-10 16:14:22 +01:00
Johannes Zellner 4d91351845 Get config should succeed for non-admins also 2020-02-10 13:10:56 +01:00
Johannes Zellner 8442f80641 Ensure app password and api token tables have same layout 2020-02-08 01:25:05 +01:00
Johannes Zellner f10fafd038 Fix token expiration display 2020-02-08 01:23:29 +01:00
Johannes Zellner d3f08ef580 Fix apps test to use latest test-app 2020-02-08 00:43:57 +01:00
Johannes Zellner 5e11a9c8ed Fixup typo 2020-02-07 23:12:53 +01:00
Johannes Zellner 957e1a7708 Cleanup unused tokendb apis 2020-02-07 23:06:45 +01:00
Johannes Zellner 7c86ed9783 Add ability to specify the login purpose for further use
In this case the cli will specify a different token type
2020-02-07 23:03:53 +01:00
Johannes Zellner c85f48a9e9 Remove console.log() 2020-02-07 22:38:51 +01:00
Girish Ramakrishnan a1c487b29d Add note that old backups have to be cleaned up manually 2020-02-07 13:20:19 -08:00
Johannes Zellner 62562f051c Add token add api and separate api tokens from rest 2020-02-07 21:40:55 +01:00
Girish Ramakrishnan 799b588693 More 4.5 changes 2020-02-07 11:29:16 -08:00
Girish Ramakrishnan 467edb6b32 Error handing fixes for import 2020-02-07 11:23:34 -08:00
Johannes Zellner 1970641001 Implement revoke tokens 2020-02-07 20:00:10 +01:00
Girish Ramakrishnan 72b9384902 Use tooltips instead of overlays as hint when app is busy 2020-02-07 10:43:00 -08:00
Girish Ramakrishnan 8600019079 Fixes to import UI 2020-02-07 10:22:52 -08:00
Girish Ramakrishnan 49975a521b Add UI to import backup 2020-02-07 09:42:27 -08:00
Johannes Zellner b289db6879 Actually fix deployment tarball apiOrigin 2020-02-07 18:27:39 +01:00
Girish Ramakrishnan 596f4c01a4 cloudron-setup: remove support for pre-4.2 2020-02-07 09:15:12 -08:00
Girish Ramakrishnan f155de0f17 Revert "Read the provider from the settings, not the migration PROVIDER_FILE"
This reverts commit 001749564d.

PROVIDER is still very much alive and active. sysinfo provider is for the network
interface
2020-02-07 09:13:33 -08:00
Johannes Zellner 8ae6bf832a List all tokens in profile 2020-02-07 17:03:14 +01:00
Johannes Zellner 3efe7eb85d Add token route wrapper 2020-02-07 16:42:35 +01:00
Johannes Zellner 476ba1ad69 Fix token expiresAt 2020-02-07 16:42:15 +01:00
Johannes Zellner 46635e1992 Remove oauth client wrapper 2020-02-07 16:36:10 +01:00
Johannes Zellner e8abe35bc5 Fix gulpfile for release tarball creation 2020-02-07 16:31:35 +01:00
Johannes Zellner ac4aa4bd3d Add tokens routes 2020-02-07 16:20:05 +01:00
Johannes Zellner 7596881464 Remove oauth from gulp and ejs templates 2020-02-07 13:41:10 +01:00
Girish Ramakrishnan ba36f05182 Just hide the table altogether when no backup 2020-02-06 16:11:25 -08:00
Girish Ramakrishnan 237f2c5112 Better error message for domain conflict 2020-02-06 15:51:32 -08:00
Johannes Zellner cbc6785eb5 Fix typo 2020-02-06 17:29:45 +01:00
Johannes Zellner 26c4cdbf17 Rename tokens.addTokenByUserId() to simply tokens.add() 2020-02-06 17:26:17 +01:00
Johannes Zellner fb78f31891 cleanup accesscontrol route tests for now 2020-02-06 17:26:17 +01:00
Johannes Zellner 2b6bf8d195 Remove Oauth clients code 2020-02-06 17:26:15 +01:00
Johannes Zellner 2854462e0e Remove token scope business 2020-02-06 16:44:46 +01:00
Johannes Zellner b4e4b11ab3 Remove now redundant developer login code 2020-02-06 15:47:44 +01:00
Johannes Zellner 7c5a258af3 Move 2fa validation in one place 2020-02-06 15:36:14 +01:00
Johannes Zellner 12aa8ac0ad Remove passport 2020-02-06 14:56:28 +01:00
Johannes Zellner 58d8f688e5 Update schema since authcodes is gone 2020-02-06 11:11:15 +01:00
Girish Ramakrishnan 7efb9e817e oauth2 is gone 2020-02-05 14:46:09 -08:00
Girish Ramakrishnan 5145ea3530 Add supportConfig in database 2020-02-05 14:46:05 -08:00
Girish Ramakrishnan be1874839e get support configuration via REST API 2020-02-05 14:15:46 -08:00
Girish Ramakrishnan 2f6933102c put appstore whitelist/blacklist in db 2020-02-05 11:58:10 -08:00
Girish Ramakrishnan 25ef5ab636 Move custom pages to a subdirectory 2020-02-05 11:42:17 -08:00
Johannes Zellner 4ae12ac10b Remove oauth
A whole bunch of useless stuff
2020-02-05 18:15:59 +01:00
Johannes Zellner 5996ea1ba3 Remove unused code 2020-02-05 17:26:48 +01:00
Johannes Zellner bfffde5f89 Remove oauth based account setup page 2020-02-05 17:10:55 +01:00
Johannes Zellner aa7ec53257 Also send display name with invite link 2020-02-05 16:34:34 +01:00
Johannes Zellner 9283537efc Implement account setup view logic 2020-02-05 16:34:15 +01:00
Johannes Zellner 1f41e6dc0f Fix audit source usage 2020-02-05 16:12:40 +01:00
Johannes Zellner 9dbdad324a Use invite link generated on the server to stay in sync 2020-02-05 15:53:19 +01:00
Johannes Zellner 1fbbaa82ab Generate the user invite link only in one location 2020-02-05 15:53:05 +01:00
Johannes Zellner 68b1d1dde1 Fixup account setup link 2020-02-05 15:21:55 +01:00
Johannes Zellner 39faf2e55c Add new account setup page 2020-02-05 15:05:34 +01:00
Johannes Zellner d773cb4873 Add REST route for account setup
This replaces the server side rendered form
2020-02-05 15:04:59 +01:00
Johannes Zellner 19b5253708 Remove now unused login callback 2020-02-05 12:54:14 +01:00
Johannes Zellner d3c7616120 Remove csurf
New views will be using the REST api not session, so this won't apply
2020-02-05 12:49:37 +01:00
Johannes Zellner 3f2b59e67f Ensure we have proper login app entry points 2020-02-05 11:54:31 +01:00
Johannes Zellner 6a92af3db3 Remove password reset views from oauth 2020-02-05 11:43:33 +01:00
Girish Ramakrishnan 763e14f55d Make app error page customizable 2020-02-04 17:52:30 -08:00
Girish Ramakrishnan 4f57d97fff add api to get/set footer and remove all use of custom.js 2020-02-04 13:27:19 -08:00
Girish Ramakrishnan 4bc1d5cd4a uiSpec is dead 2020-02-04 13:17:26 -08:00
Girish Ramakrishnan 3153fb5cbe custom: remove alerts section 2020-02-04 13:09:00 -08:00
Girish Ramakrishnan c9e96cd97a custom: remove support section 2020-02-04 13:07:36 -08:00
Girish Ramakrishnan 689349887d custom: remove support section 2020-02-04 13:07:20 -08:00
Girish Ramakrishnan e7a1b5d40b custom: remove subscription.configurable 2020-02-04 12:59:16 -08:00
Girish Ramakrishnan c41042635f custom: remove subscription.configurable 2020-02-04 12:58:32 -08:00
Girish Ramakrishnan 141b2d2691 custom: remove app whitelist/blacklist 2020-02-04 12:58:11 -08:00
Girish Ramakrishnan e71e8043cf custom: remove config.uiSpec.domains 2020-02-04 12:56:10 -08:00
Girish Ramakrishnan 8f997ee724 Remove usage of config.uiSpec.domains 2020-02-04 12:55:51 -08:00
Girish Ramakrishnan 49d80dbfc4 custom: remove backups.configurable 2020-02-04 12:49:41 -08:00
Girish Ramakrishnan 99bce50b4d custom: remove backups.configurable 2020-02-04 12:49:36 -08:00
Johannes Zellner db166c4f29 Be at least consistent with casing 2020-02-04 18:41:53 +01:00
Johannes Zellner 4a8a52a0c7 Implement setting new password 2020-02-04 18:36:24 +01:00
Johannes Zellner 8d6eca2349 Fix typos 2020-02-04 18:32:43 +01:00
Johannes Zellner 13d0491759 Send out new password reset link 2020-02-04 17:11:31 +01:00
Johannes Zellner 37e2d78d6a Users without a username have to sign up first 2020-02-04 17:07:45 +01:00
Johannes Zellner 6745221e0f Password reset does not need an email 2020-02-04 17:05:08 +01:00
Johannes Zellner 18bbe70364 Add route to set new password 2020-02-04 16:47:57 +01:00
Johannes Zellner eec8d4bdac We want to redirect to login.html 2020-02-04 15:59:12 +01:00
Johannes Zellner 0762b337b8 Fixup password reset page 2020-02-04 15:53:56 +01:00
Johannes Zellner a50fa9bcf4 Add password reset feature in login view 2020-02-04 15:27:35 +01:00
Johannes Zellner 86029c1068 Add new password reset route 2020-02-04 15:27:22 +01:00
Johannes Zellner 1b0c5f8771 Remove unnecessary login page navbar 2020-02-04 15:00:56 +01:00
Johannes Zellner 92be875a2f Use standalone login screen instead of OAuth 2020-02-04 14:46:19 +01:00
Johannes Zellner 0ae9be4de9 Add basic login/logout logic 2020-02-04 14:35:25 +01:00
Girish Ramakrishnan d5e4453f15 app passwords: add ui 2020-02-01 18:49:29 -08:00
Girish Ramakrishnan 57e3180737 typo 2020-02-01 18:12:33 -08:00
Girish Ramakrishnan a84cdc3d09 app password: add tests for the rest routes 2020-02-01 10:19:14 -08:00
Johannes Zellner c9e43ed295 Add basic ticks to cpu share slider 2020-02-01 16:30:32 +01:00
Girish Ramakrishnan a5f35f39fe oom notification for backup disk as well 2020-01-31 22:20:34 -08:00
Girish Ramakrishnan 3427db3983 Add app passwords feature 2020-01-31 22:03:19 -08:00
Girish Ramakrishnan e3878fa381 mysqldump: Add --column-statistics=0
mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'box' AND TABLE_NAME = 'appAddonConfigs';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
2020-01-31 18:42:44 -08:00
Girish Ramakrishnan e1ded9f7b5 Add collectd for backups 2020-01-31 14:56:41 -08:00
Girish Ramakrishnan 63610f04ec Show backup disk usage 2020-01-31 14:47:04 -08:00
Girish Ramakrishnan 1981493398 refactor code into collectd.js 2020-01-31 13:33:19 -08:00
Girish Ramakrishnan dece7319cc Update packages carefully 2020-01-31 10:25:47 -08:00
Girish Ramakrishnan 5c4e163709 revert package changes 2020-01-31 10:04:49 -08:00
Johannes Zellner d1acc6c466 Do not upgrade async module since api has changed
We have to first fix for example doWhilst() usage
2020-01-31 15:44:41 +01:00
Girish Ramakrishnan e0db4fce6e Better purpose 2020-01-30 21:53:43 -08:00
Girish Ramakrishnan f879d6f529 Prepare for 4.4.5 2020-01-30 21:11:20 -08:00
Girish Ramakrishnan 1ac38d4921 After node update, we get a buffer 2020-01-30 16:06:11 -08:00
Johannes Zellner 1f4b6f4a42 Update purpose list 2020-01-30 18:33:44 +01:00
Johannes Zellner 4818e9a8e4 Pass cloudron purpose to appstore 2020-01-30 16:00:38 +01:00
Johannes Zellner 300ab191fe Add cloudron purpose to appstore login/signup flow 2020-01-30 15:36:05 +01:00
Girish Ramakrishnan c4ed471d1c Update node to 10.18.1 2020-01-29 20:54:57 -08:00
Girish Ramakrishnan 83c0b2986a Update mysql packet size 2020-01-29 20:44:26 -08:00
Girish Ramakrishnan 0315ae511b do not allows < 2 2020-01-28 22:44:08 -08:00
Girish Ramakrishnan b8cddf559a min cpu shares is 2 2020-01-28 22:38:54 -08:00
Girish Ramakrishnan e336c4405d Rename Custom data dir to Storage 2020-01-28 22:33:38 -08:00
Girish Ramakrishnan 2a4d9c0ba6 ui for cpu shares 2020-01-28 22:32:58 -08:00
Girish Ramakrishnan 4ba9f80d44 apps: configure cpuShares 2020-01-28 22:16:25 -08:00
Girish Ramakrishnan d1d3309e91 Better error message for invalid data directories 2020-01-28 14:12:56 -08:00
Girish Ramakrishnan 84cffe8888 Fix debug 2020-01-28 13:51:03 -08:00
Girish Ramakrishnan 4a29fa93c5 services: use memorySwap to be consistent with the app memory UI
the memory limit sliders take the total memory (memory + swap).
2020-01-28 13:38:05 -08:00
Girish Ramakrishnan 3929b3ca0a service: add memorySwap to configure route 2020-01-28 13:33:43 -08:00
Girish Ramakrishnan c5d14195d6 Remove broken help link and add explanation 2020-01-28 10:09:25 -08:00
Girish Ramakrishnan d649a470f9 More changes 2020-01-28 09:37:48 -08:00
Girish Ramakrishnan 09d34f5843 service: fix broken memory sliders 2020-01-28 09:37:25 -08:00
Girish Ramakrishnan db330b23cb Stopped apps should not renew certificates
We had a case where a stopped/ununsed app was generating cert renewal
errors.

One idea might be to suppress the notification as well.
2020-01-26 16:22:20 -08:00
Girish Ramakrishnan cda649884e eventlog: add mailbox and list update events 2020-01-24 17:18:34 -08:00
Girish Ramakrishnan 45053205db refactor: re-order arguments 2020-01-24 17:18:34 -08:00
Girish Ramakrishnan 7432610629 lint 2020-01-24 17:18:00 -08:00
Girish Ramakrishnan d50d555372 eventlog: mailbox and list update events 2020-01-24 17:18:00 -08:00
Johannes Zellner f0859291fc Actually shorten the memory limit description 2020-01-23 08:10:33 +01:00
Johannes Zellner 1eeba899f0 Mention how memory limit is allocated inline 2020-01-23 08:08:03 +01:00
Johannes Zellner 3f1533896e Keep debug messages in sync 2020-01-21 16:14:36 +01:00
Girish Ramakrishnan e20dfe1b26 Ensure backup is the night of the timezone 2020-01-20 17:28:53 -08:00
Johannes Zellner 36653c10dc Fixup profile picture selection to only allow really changed pictures to be submitted 2020-01-20 19:01:41 +01:00
Johannes Zellner 946d9db296 We have 2020 also in the oauth login views 2020-01-20 17:47:26 +01:00
Johannes Zellner 008ac68ecb Also search within app label if any 2020-01-20 14:38:41 +01:00
Girish Ramakrishnan 6dc2e1aa14 Do not show error page for 503
WP maintenance mode plugin will return 503
2020-01-13 15:00:18 -08:00
Johannes Zellner 001749564d Read the provider from the settings, not the migration PROVIDER_FILE 2020-01-13 15:35:44 +01:00
Johannes Zellner ffcba4646c Add 4.4.5 changes 2020-01-09 16:24:26 +01:00
Johannes Zellner 36b8b0e6a1 Fix user select in group add/edit dialogs
We have to depend on all users not just the paginated ones
The selection does not need all information from the user so we are good
2020-01-09 16:21:22 +01:00
Johannes Zellner 42066e20ed Make timezone settings much beautiful 2020-01-08 21:41:06 +01:00
Johannes Zellner 57aa93eb84 Do not show UTC offset in select 2020-01-08 20:35:00 +01:00
Girish Ramakrishnan 01d0c8eb9c Remove tz detection
we now have a UI to set this by hand
2020-01-08 09:24:23 -08:00
Johannes Zellner c6c51bd319 Generate timezones.js with gulp 2020-01-08 17:22:07 +01:00
Johannes Zellner 2fa9c89246 Show UTC time offset and use better dropdown with search 2020-01-08 13:01:31 +01:00
Girish Ramakrishnan 0cf40bd207 More 4.4.4 changes 2020-01-07 18:31:10 -08:00
Girish Ramakrishnan 840b326187 Reword 2020-01-07 18:30:54 -08:00
Johannes Zellner 1fef7130fb Add time zone settings ui 2020-01-07 21:41:45 +01:00
Johannes Zellner 2328dd1d58 Ensure outdated selected app tags are cleared if not available anymore 2020-01-07 12:17:40 +01:00
Johannes Zellner dbba99eee5 Only show app search field if more than 10 apps are installed 2020-01-07 11:13:22 +01:00
Girish Ramakrishnan 4a283e9f35 4.4.4 changes 2020-01-06 08:55:22 -08:00
Johannes Zellner f07e0bf967 Fix typo to actually restart an app 2020-01-06 16:38:48 +01:00
Johannes Zellner c548f572df fixup linter errors 2020-01-06 16:38:33 +01:00
Johannes Zellner 129f67c9f8 Make app view tags and domain filter persistent
This is only stored in the browser's localStorage to survive a reload,
but is not stored on the server to be preserved across different clients
2020-01-06 16:23:33 +01:00
Johannes Zellner bc75a8e7b8 Add search field in apps view 2020-01-06 15:27:31 +01:00
Johannes Zellner 5ab37bcf7e Disable test if dns setup succeeds twice 2020-01-06 12:21:36 +01:00
Johannes Zellner 9151965cd6 Keep user objects in REST api responses more coherent 2020-01-06 11:54:00 +01:00
Girish Ramakrishnan c5cd71f9e3 Disable motd-news
https://forum.cloudron.io/topic/2050/switch-to-debian-ubuntu-spying
2020-01-05 15:25:15 -08:00
Girish Ramakrishnan 602b335c0e add openldap compat
apps like firefly-iii seem to require these fields when using the
openldap driver
2020-01-05 15:14:46 -08:00
Girish Ramakrishnan e4f16ae520 2020: happy new year 2020-01-02 16:56:42 -08:00
Girish Ramakrishnan 837c8b85c2 2020: happy new year 2020-01-02 16:55:47 -08:00
Girish Ramakrishnan 7d16396e72 clone: custom mailbox name is not cloned 2020-01-01 23:05:34 -08:00
Girish Ramakrishnan 4df34c724e cloudflare: add token type selector 2020-01-01 16:49:17 -08:00
Girish Ramakrishnan 66d3d07148 append error message when verifying dns config 2020-01-01 16:17:16 -08:00
Girish Ramakrishnan b5c1161caa add tokenType to cloudflare config 2020-01-01 16:01:39 -08:00
Girish Ramakrishnan 1960fc8606 cloudflare: send tokenType 2019-12-31 17:03:29 -08:00
Girish Ramakrishnan aaae8a84f6 show warning when enabling email with cloudflare 2019-12-31 17:03:25 -08:00
Girish Ramakrishnan b0420889ad cloudflare: add api token support 2019-12-31 16:47:47 -08:00
Girish Ramakrishnan 527819d886 cloudflare: refactor superagent logic 2019-12-31 16:25:49 -08:00
Girish Ramakrishnan 1dca3c17a4 debug mode apps skip the health check 2019-12-24 11:08:17 -08:00
Girish Ramakrishnan 1ad0cff28e Use app.fqdn in output 2019-12-24 11:07:53 -08:00
Johannes Zellner dfd31722fc Ensure webServerOrigin is actually set 2019-12-23 17:20:28 +01:00
Johannes Zellner 783ec03ac9 The setup views require webServerOrigin for documentation purpose 2019-12-23 17:15:45 +01:00
Girish Ramakrishnan f5fd75f4fa Set busy indicator to false in refresh callbacks 2019-12-22 17:10:04 -08:00
Girish Ramakrishnan 24d1c2d63a Fix error state handling
Do not disable views in error state. Many actions like display work just fine.
Also, people want to restore etc but all this is disabled.
2019-12-20 19:04:51 -08:00
Girish Ramakrishnan 6cd395d494 Allow restore from error state 2019-12-20 17:58:42 -08:00
Girish Ramakrishnan 681079e01c repair: reconfigure for all other states
the idea was that the failed routes can be called again in other cases
2019-12-20 17:00:53 -08:00
Girish Ramakrishnan da191d62cc Show console view in error state for the logs
disable the terminal button accordingly
2019-12-20 15:55:57 -08:00
Girish Ramakrishnan e8bc6e564d Rename the repair button 2019-12-20 15:38:40 -08:00
Girish Ramakrishnan 95f3158bb4 Rename paused to recovery mode 2019-12-20 11:53:06 -08:00
Girish Ramakrishnan f7cc5be173 Wrap the tooltip 2019-12-20 11:42:41 -08:00
Girish Ramakrishnan aabbc43769 4.4.3 changes 2019-12-20 11:29:02 -08:00
Girish Ramakrishnan adc078a5cb Add a restart button in recovery section 2019-12-20 11:27:32 -08:00
Girish Ramakrishnan 2692f6ef4e Add restart route for atomicity 2019-12-20 11:15:36 -08:00
Girish Ramakrishnan 3f3ec9ef9a Fix usage of config.memory 2019-12-20 10:02:01 -08:00
Girish Ramakrishnan 7d70060962 debug view is now called repair 2019-12-19 21:53:53 -08:00
Girish Ramakrishnan 4507496d3d Show endpoint for minio 2019-12-19 11:05:40 -08:00
Girish Ramakrishnan 445dcc24df Fix documentation links 2019-12-18 14:29:42 -08:00
Girish Ramakrishnan 887cbb0b22 make percent non-zero 2019-12-18 09:33:44 -08:00
Girish Ramakrishnan 78205c9a13 Add gravatar link 2019-12-17 15:05:01 -08:00
Girish Ramakrishnan 3a0f7e0602 Disable console view when app is in error state 2019-12-17 10:24:42 -08:00
Girish Ramakrishnan fab23ee595 backup: compact the view 2019-12-17 10:15:38 -08:00
Girish Ramakrishnan d285c5a679 Make the buttons primary instead of success 2019-12-17 10:03:04 -08:00
Girish Ramakrishnan 6d079b9349 hide the cancel task button
we considered putting it in the progress bar, but we don't want to
encourage it's use
2019-12-17 09:43:40 -08:00
Johannes Zellner ca4fdc1be8 Add azure-image provider argument 2019-12-17 16:42:25 +01:00
Johannes Zellner c291f744e7 Ensure min-height for app view tabs matches the tabs 2019-12-17 14:56:15 +01:00
Girish Ramakrishnan f0730f595f rework the repair view 2019-12-16 19:24:32 -08:00
Girish Ramakrishnan d175d06b35 debug is now repair 2019-12-16 17:45:40 -08:00
Girish Ramakrishnan 119969634e Fix display of start/stop button 2019-12-16 16:27:24 -08:00
Girish Ramakrishnan b67c09a4c1 Use refreshApp in onReady 2019-12-16 16:22:29 -08:00
Girish Ramakrishnan 8a850ecc5b Remove usage of trackBackupTask 2019-12-16 16:17:54 -08:00
Girish Ramakrishnan f752ed3927 remove superfluous trackBackuptask 2019-12-16 16:17:13 -08:00
Girish Ramakrishnan 866a7480bc make refreshApp take appId 2019-12-16 16:08:49 -08:00
Girish Ramakrishnan 55ae8404cd remove duplicate show call
this is already done in $scope.setView
2019-12-16 15:54:03 -08:00
Girish Ramakrishnan 71e9d7c4af evenlog: ssh and ticket 2019-12-16 14:12:59 -08:00
Girish Ramakrishnan 93199c7f5b eventlog: support ticket and ssh 2019-12-16 14:06:55 -08:00
Girish Ramakrishnan 580556cab6 app: add console section 2019-12-16 13:34:21 -08:00
Girish Ramakrishnan 4c6566f42f stopped apps should not be updated or auto-updated 2019-12-16 13:29:15 -08:00
Girish Ramakrishnan bcb6182be3 lint: indent 2019-12-16 12:54:24 -08:00
Girish Ramakrishnan c865aaed6f remove unused cert code 2019-12-16 12:53:51 -08:00
Johannes Zellner c38f7d7f93 Make properties explicitly available 2019-12-16 15:21:26 +01:00
Girish Ramakrishnan 37c23fa187 avatar: fix broken image for emails with no gravatar
this was because we blindly add ? to a url which already has query params
2019-12-13 13:50:50 -08:00
Girish Ramakrishnan da85cea329 avatar: remove query param
let the ui add the size and default
2019-12-13 13:45:02 -08:00
Girish Ramakrishnan d5c70a2b11 Add sshd port warning 2019-12-13 11:32:36 -08:00
Girish Ramakrishnan fe355b4bac 4.4.2 changes 2019-12-12 20:44:54 -08:00
Girish Ramakrishnan a7dee6be51 cloudron.runSystemChecks should take a callback 2019-12-12 20:41:03 -08:00
Girish Ramakrishnan 2817dc0603 Not required to run any cron job immediately 2019-12-12 20:39:40 -08:00
Girish Ramakrishnan 6f36c72e88 Fix crash in mail.checkConfiguration 2019-12-12 20:36:27 -08:00
Girish Ramakrishnan 45e806c455 typo in comment 2019-12-12 19:54:59 -08:00
Johannes Zellner 2eeb99e869 Improve avatar settings dialog 2019-12-12 15:34:26 +01:00
Johannes Zellner bbdd76dd37 Fix and add memory route tests 2019-12-12 13:21:24 +01:00
Johannes Zellner 09921e86c0 Remove redunandant memory property from config
we have a specific route for this now
2019-12-12 12:14:08 +01:00
Johannes Zellner fd528edfed Use cloudron/memory api instead of removed config.memory 2019-12-12 12:13:06 +01:00
Girish Ramakrishnan d6e4b64103 4.4.1 changes 2019-12-11 15:27:47 -08:00
Girish Ramakrishnan df6a645600 typo 2019-12-11 15:13:46 -08:00
Girish Ramakrishnan 9dd3e4537a return 422 on instance id mismatch
the ui redirects otherwise
2019-12-11 15:13:38 -08:00
Girish Ramakrishnan d1515f8f64 Handle 422 for invalid provider token 2019-12-11 15:01:51 -08:00
Girish Ramakrishnan 9fb85311b9 Various spacing issues 2019-12-11 14:43:54 -08:00
Girish Ramakrishnan aed949e221 Fix layout of instance id 2019-12-11 14:18:12 -08:00
Girish Ramakrishnan 5b29f48bfd Fix bug where providerToken is sent in config 2019-12-11 13:58:29 -08:00
Girish Ramakrishnan 5bfb48b863 ami: set default to route53 2019-12-11 12:57:46 -08:00
Girish Ramakrishnan a5f31e8724 Revert "rename ami to aws-mp"
This reverts commit 72ac00b69a.

Existing code relies on this, so don't change it
2019-12-11 12:56:30 -08:00
Girish Ramakrishnan 72ac00b69a rename ami to aws-mp 2019-12-11 12:27:55 -08:00
Girish Ramakrishnan ae5722a7d4 eventlog: typo when mail list is removed 2019-12-11 10:05:45 -08:00
Girish Ramakrishnan 9536fafd53 eventlog: mail list removal typo 2019-12-11 10:00:00 -08:00
Johannes Zellner 4e3192d450 Avoid double dns setup tracking 2019-12-11 14:02:40 +01:00
Johannes Zellner ccca3aca04 Send setup state to get the actually correct ip 2019-12-10 18:01:07 +01:00
Johannes Zellner 4434d59b09 Remove dns setup Cloudron logo 2019-12-10 17:44:22 +01:00
Girish Ramakrishnan e4dd5d6434 Fix crash when uploading file 2019-12-09 15:02:51 -08:00
Girish Ramakrishnan 9a77fb6306 acme2: implement post-as-get
https://tools.ietf.org/html/rfc8555#section-6.3
https://community.letsencrypt.org/t/post-as-get-and-empty-payload-instead-of/86720/3
https://community.letsencrypt.org/t/problem-with-renew-certificates-the-request-message-was-malformed-method-not-allowed/107889/17
2019-12-08 19:17:52 -08:00
Girish Ramakrishnan 3ec5c713bf debug: certFilePath is undefined 2019-12-08 18:23:12 -08:00
Girish Ramakrishnan 837fc27e94 canAutoupdateApp now returns bool 2019-12-08 16:55:56 -08:00
Girish Ramakrishnan 9ad6025310 search and replace gone wrong 2019-12-06 13:52:43 -08:00
Girish Ramakrishnan d765e4c619 add a note 2019-12-06 12:39:46 -08:00
Girish Ramakrishnan f5217236d6 Change the version number 2019-12-06 12:28:08 -08:00
Girish Ramakrishnan 8f8d099faf Add to changes 2019-12-06 12:23:49 -08:00
Girish Ramakrishnan 16660e083f Also set overwriteDns when manifest is not provided 2019-12-06 12:21:28 -08:00
Girish Ramakrishnan 4e35020a1c Set overwriteDns for install task 2019-12-06 12:11:34 -08:00
Girish Ramakrishnan 111e0bcb5f Fix repair route path 2019-12-06 11:44:41 -08:00
Girish Ramakrishnan 060fe39f2e Fix repair route path 2019-12-06 11:44:33 -08:00
Girish Ramakrishnan d7f9a547fc Disable requiredState check for now
there is a race but this is mitigated by the checkAppState non-db logic
for now
2019-12-06 11:29:35 -08:00
Girish Ramakrishnan a5b14e8d68 Fix repair
Call appropriate routes based on the error state
2019-12-06 10:13:30 -08:00
Girish Ramakrishnan 6a64f24e98 Fix repair
If a task fails, we can either:
* allow other task ops to be called - we cannot do this because the ops are fine-grained. for example,
  a restore failure removes many things and calling set-memory or set-location in that state won't
  make sense.

* provide a generic repair route - this allows one to override args and call the failed task
  again. this is what we have now but has the issue that this repair function has to know about all
  the other op functions. for example, for argument validation. we can do some complicated refactoring
  to make it work if we want.

* just a generic total re-configure - this does not work because clone/restore/backup/datadir/uninstall/update
  failure leaves the app in a state which re-configure cannot do anything about.

* allow the failed op to be called again - this seems the easiest. we just allow the route to be called again
  in the error state.

* if we hit a state where even providing extra args, cannot get you out of this "error" state, we have to provide
  some repair route. for example, maybe the container disappeared by some docke error. user clicks 'repair' to
  recreate the container. this route does not have to take any args.

The final solution is:
* a failed task can be called again via the route. so we can resubmit any args and we get validation
* repair route just re-configures and can be called in any state to just rebuild container. re-configure is also
  doing only local changes (docker, nginx)
* install/clone failures are fixed using repair route. updated manifest can be passed in.
* UI shows backup selector for restore failures
* UI shows domain selector for change location failulre
2019-12-06 09:56:09 -08:00
Girish Ramakrishnan 37d7be93b5 Move oldManifest out of restoreConfig 2019-12-06 09:56:03 -08:00
Girish Ramakrishnan 9c809aa6e1 remove dead comment 2019-12-06 09:35:08 -08:00
Girish Ramakrishnan 7ab9f3fa2f re-configure does not require oldConfig
this is only needed when changing location now. the configure()
is now entirely local i.e rebuild local container and the reverse
proxy config
2019-12-06 09:23:58 -08:00
Girish Ramakrishnan ffeb484a10 No need to return args as part of task.get
This reverts commit 831e22b4ff.
This reverts commit 6774514bd2.
2019-12-06 08:42:49 -08:00
Girish Ramakrishnan 2ffb32ae60 Skip moving data if source and target are same 2019-12-06 08:09:43 -08:00
Girish Ramakrishnan 905bb92bad s3: ensure BoxError return 2019-12-05 21:50:44 -08:00
Girish Ramakrishnan 3926efd153 restore: only take non-empty backupId 2019-12-05 21:16:35 -08:00
Girish Ramakrishnan c5e5bb90e3 better error message 2019-12-05 21:16:35 -08:00
Girish Ramakrishnan cea543cba5 On backup error, only set the task error
at some point, the backup ui can show this error
2019-12-05 16:34:40 -08:00
Girish Ramakrishnan a8b489624d fix error messages 2019-12-05 16:27:00 -08:00
Girish Ramakrishnan 49d3bddb62 Show download progress when restoring rsync backups 2019-12-05 15:44:52 -08:00
Girish Ramakrishnan c0ff3cbd22 move progressTag to the end 2019-12-05 15:44:52 -08:00
Girish Ramakrishnan 1de97d6967 do not clear localstorage during in-place import 2019-12-05 12:42:08 -08:00
Girish Ramakrishnan a44a82083e Add backups.testProviderConfig
fields like format/retention won't be validated here since it's only
testing the access credentials
2019-12-05 11:55:53 -08:00
Girish Ramakrishnan d57681ff21 put fqdn in the end 2019-12-05 11:15:21 -08:00
Girish Ramakrishnan e3de2f81d3 setup and clear addons before import 2019-12-05 11:12:40 -08:00
Girish Ramakrishnan e8c5f8164c do not delete data dir for in-place import 2019-12-05 11:01:27 -08:00
Girish Ramakrishnan c07e215148 Use BoxError in on error cases 2019-12-05 09:54:29 -08:00
Girish Ramakrishnan 4bb676fb5c add asserts 2019-12-05 09:32:45 -08:00
Johannes Zellner dbdf86edfc No need to return the same data which the route got passed in 2019-12-05 18:02:57 +01:00
Johannes Zellner 2c8e6330ce Do not allow to change the sysinfo in demo mode 2019-12-05 16:06:21 +01:00
Girish Ramakrishnan 1b563854a7 implement in-place import and custom backup config 2019-12-04 19:27:05 -08:00
Girish Ramakrishnan 80b890101b Add changes 2019-12-04 17:53:02 -08:00
Girish Ramakrishnan c3696469ff Add app fqdn to backup progress message 2019-12-04 17:49:31 -08:00
Girish Ramakrishnan 3e08e7c653 Typo in docker socket path 2019-12-04 14:37:00 -08:00
Girish Ramakrishnan 53e39f571c Make addons code remove a BoxError 2019-12-04 14:28:42 -08:00
Girish Ramakrishnan c992853cca lint 2019-12-04 11:18:39 -08:00
Girish Ramakrishnan 85e17b570b Use whilst instead of forever
this gets rid of the Error object
2019-12-04 11:17:44 -08:00
Girish Ramakrishnan 30eccfb54b Use BoxError instead of Error in all places
This moves everything other than the addon code and some 'done' logic
2019-12-04 11:02:54 -08:00
Girish Ramakrishnan 3623831390 Typo 2019-12-04 10:23:16 -08:00
Girish Ramakrishnan d0a3d00492 Use NOT_IMPLEMENTED error code 2019-12-04 10:22:22 -08:00
Girish Ramakrishnan 0b6fbfd910 Better addon error messages 2019-12-04 10:09:57 -08:00
Girish Ramakrishnan 8cfb27fdcd Add changes 2019-12-03 15:39:29 -08:00
Girish Ramakrishnan 841ab54565 better logs 2019-12-03 15:11:27 -08:00
Girish Ramakrishnan a2e9254343 lint 2019-12-03 15:10:06 -08:00
Johannes Zellner 43cb03a292 Send provider and version during registration 2019-12-02 18:19:51 +01:00
Johannes Zellner f2fca33309 Add support to upload custom profile avatar 2019-12-02 18:03:54 +01:00
Johannes Zellner 14d26fe064 Do not crash on migration
A bit late but still
2019-12-02 18:03:54 +01:00
Johannes Zellner 165ad229e2 Add support to upload custom profile avatar 2019-12-02 18:03:41 +01:00
Girish Ramakrishnan 9cc968e790 Pass the new data dir as a task argument 2019-11-25 14:22:27 -08:00
Girish Ramakrishnan 831e22b4ff Fix failing test 2019-11-23 18:35:15 -08:00
Girish Ramakrishnan 6774514bd2 Return args as part of task.get
the ui needs this to repair any failed app task
2019-11-23 18:06:33 -08:00
Girish Ramakrishnan beb3117bfc Remove dead certificate code 2019-11-23 17:50:54 -08:00
Girish Ramakrishnan e1d462aa42 Fix taskName 2019-11-23 17:49:13 -08:00
Girish Ramakrishnan bd15ef7768 @ sign missing for email address 2019-11-22 14:41:17 -08:00
Girish Ramakrishnan f543b98764 Remove BoxError.UNKNOWN_ERROR 2019-11-22 14:27:41 -08:00
Johannes Zellner 2e94600afe Don't set 'Starting ...' as initial task progress message
This is confusing for tasks like "stop" as it will say "Starting ..."
2019-11-22 13:54:43 +01:00
Johannes Zellner 9295ce783a Other logs are lowercase 2019-11-22 12:31:41 +01:00
Johannes Zellner 134f8a28bf Hide access tokens from logs 2019-11-22 12:29:13 +01:00
Girish Ramakrishnan 646f669c14 Display swap 2019-11-21 14:00:37 -08:00
Girish Ramakrishnan ab5e4e998c Fix reduce usage 2019-11-21 13:48:31 -08:00
Girish Ramakrishnan a98551f99c rename disks to system 2019-11-21 13:01:08 -08:00
Girish Ramakrishnan 42fe84152a return swap information 2019-11-21 12:55:17 -08:00
Girish Ramakrishnan 8a3d212bd4 Fix note 2019-11-20 16:17:47 -08:00
Girish Ramakrishnan af51ddc347 Fix crash when user with active session is deleted 2019-11-20 16:12:21 -08:00
Girish Ramakrishnan b582e549c2 do not unconfigure reverse proxy on container destroy 2019-11-20 15:38:55 -08:00
Girish Ramakrishnan 5efbccd974 Revert migration change since some cloudrons already got 4.3.3 2019-11-20 14:43:01 -08:00
Johannes Zellner 682eb8d6e5 Improve external ldap auto creation text and move to bottom 2019-11-20 22:42:32 +01:00
Johannes Zellner 82f5cd6075 Remove unused stuff in external ldap tests 2019-11-20 22:30:53 +01:00
Johannes Zellner 0d8820c247 Add external ldap tests 2019-11-20 22:21:40 +01:00
Girish Ramakrishnan 37c6a96a3a s3: if etag is not present, flag as error 2019-11-20 12:53:36 -08:00
Johannes Zellner c53b54bda3 Only create external ldap users for oauth logins 2019-11-20 20:05:22 +01:00
Girish Ramakrishnan 808753ad3a CLI tokens are now valid for a month 2019-11-20 10:07:15 -08:00
Girish Ramakrishnan f919570cea Fix tests
mailboxDomain can be null (even though install/clone currently always
allocate one)
2019-11-20 09:57:51 -08:00
Johannes Zellner 9acf49a99e Fix typo 2019-11-20 18:18:21 +01:00
Johannes Zellner 239883d01f Add autoCreate flag to external ldap config 2019-11-20 18:18:21 +01:00
Johannes Zellner e3cee37527 Move autocreation logic into external ldap 2019-11-20 18:18:21 +01:00
Johannes Zellner 8fd0461c62 Auto create users on login if present in external ldap source 2019-11-20 18:18:21 +01:00
Johannes Zellner 00b0a21c78 Add ldap user autocreate settings 2019-11-20 10:46:26 +01:00
Girish Ramakrishnan 4d2b5c83ca Bump version to re-generate configs 2019-11-19 17:36:05 -08:00
Girish Ramakrishnan bc314c1119 Re-generate collectd and logrotate configs on container recreate
this was the reason graphs were not showing up properly
2019-11-19 17:28:31 -08:00
Girish Ramakrishnan d01749a2c2 Add 4.3.4 changes 2019-11-19 11:42:48 -08:00
Girish Ramakrishnan b46154676a Do not error if fallback certs went missing
This atleast lets the user remove and add the domain to fix things up
2019-11-19 09:36:35 -08:00
Girish Ramakrishnan fd2d60dca3 Match the version entirely during restore
Sometimes, we introduce migrations in patch releases and this causes
problems when restoring the sql dump
2019-11-18 15:05:01 -08:00
Johannes Zellner c7a5d295ec Add new apps category in appstore view 2019-11-18 22:43:33 +01:00
Girish Ramakrishnan bcb055ed05 Show slash only with prefix 2019-11-18 11:04:06 -08:00
Girish Ramakrishnan ed17bdc7c3 typo 2019-11-17 21:16:36 -08:00
Girish Ramakrishnan ac05399cda Add changes 2019-11-17 12:29:53 -08:00
Girish Ramakrishnan 1af5c6a418 Fix registry detection
ECR registry does not have a username component
2019-11-17 11:50:58 -08:00
Girish Ramakrishnan 983b1e3656 index.docker.io is legacy
https://github.com/docker/distribution/blob/release/2.7/reference/normalize.go#L13
2019-11-17 11:39:42 -08:00
Girish Ramakrishnan 3c4dbe2558 Disable update view for custom apps 2019-11-16 10:53:15 -08:00
Girish Ramakrishnan e2bb668fe4 add note on appStoreId 2019-11-16 10:31:38 -08:00
Girish Ramakrishnan d255466417 manifest.id is optional for custom apps 2019-11-15 17:28:54 -08:00
Girish Ramakrishnan 80b931ca9e email domain can be selected 2019-11-15 09:41:09 -08:00
Girish Ramakrishnan 5509406395 add mailboxDomain field to apps table 2019-11-15 09:40:35 -08:00
Girish Ramakrishnan 97333474c4 Remove delay introduced by mistake in 5c920fd20 2019-11-14 17:40:21 -08:00
Girish Ramakrishnan 200a234469 ldap: use separate objects for current config and user config 2019-11-14 17:30:23 -08:00
Johannes Zellner 38928d63d6 node's http server has a default timeout of 2min which is too short for build bot 2019-11-14 13:15:18 +01:00
Girish Ramakrishnan 05c64dcbf2 move unbound config to separate file 2019-11-13 14:48:56 -08:00
Girish Ramakrishnan e39b081567 Change restart policy to unless-stopped 2019-11-13 10:29:54 -08:00
Girish Ramakrishnan 24ef877bfe website/description is optional for dev apps 2019-11-12 17:12:57 -08:00
Girish Ramakrishnan 62174658cf 4.3.2 changes 2019-11-12 16:43:27 -08:00
Girish Ramakrishnan 3d26e8a666 Revert "Update cloudron-manifestformat and other modules"
This reverts commit 3d337640ef.

Only update cloudron-manifestformat
2019-11-12 14:54:16 -08:00
Girish Ramakrishnan 3d337640ef Update cloudron-manifestformat and other modules 2019-11-12 14:26:13 -08:00
Girish Ramakrishnan 985eaf8ca9 Better progress message 2019-11-11 17:09:46 -08:00
Girish Ramakrishnan e0bee13812 validate sysinfo in setup as well 2019-11-11 16:32:29 -08:00
Girish Ramakrishnan 602244b53f Must contain since it is a path 2019-11-11 16:26:01 -08:00
Girish Ramakrishnan 97b2a6eea0 typo 2019-11-11 16:06:46 -08:00
Girish Ramakrishnan 7c6922d228 validate sysinfo configuration 2019-11-11 16:05:53 -08:00
Girish Ramakrishnan e20d09cfee Pass syinfoConfig properly 2019-11-11 15:15:50 -08:00
Girish Ramakrishnan 7e2ae8e87c add sysinfo to setup & restore 2019-11-11 12:27:44 -08:00
Girish Ramakrishnan bf68c2d321 default has changed 2019-11-11 11:19:42 -08:00
Girish Ramakrishnan fd51320fb7 sysinfoConfig is now non-optional 2019-11-11 11:05:34 -08:00
Girish Ramakrishnan a868766a65 lint 2019-11-11 09:49:41 -08:00
Girish Ramakrishnan 815392ba38 restore: add sysinfoConfig 2019-11-11 09:49:18 -08:00
Girish Ramakrishnan 7f1c505303 Add check for backupId to start with "box" 2019-11-11 09:46:47 -08:00
Girish Ramakrishnan f8c110f75c 4.3.1 changes 2019-11-11 09:43:19 -08:00
Girish Ramakrishnan f679746e63 pass clientId instead of client object to revoke 2019-11-11 09:20:42 -08:00
Girish Ramakrishnan 70f9ceb1b8 better not found message 2019-11-11 09:13:45 -08:00
Girish Ramakrishnan 2353a8b5fa list unstable apps by default 2019-11-11 08:42:00 -08:00
Girish Ramakrishnan 40b75c6ac8 Always enable unstable app listing 2019-11-11 08:41:12 -08:00
Girish Ramakrishnan cf1c2dc1ee Fix crash when listing mailboxes 2019-11-10 12:44:39 -08:00
Johannes Zellner c5fc4db980 Align appstatus page style with other dashboard pages 2019-11-10 16:33:15 +01:00
Johannes Zellner f6b88518a2 Add option to logout to destroy all sessions by this user 2019-11-08 21:33:29 +01:00
Johannes Zellner 467283d5e0 Destroy all session by a user if wanted 2019-11-08 21:32:55 +01:00
Girish Ramakrishnan 3fecb777e8 make token ui work again 2019-11-08 12:24:26 -08:00
Girish Ramakrishnan 3d2914da94 remove extra break 2019-11-08 11:10:26 -08:00
Johannes Zellner 52e1ce5237 Actually destroy the OAuth session on token revokation 2019-11-08 17:31:19 +01:00
Girish Ramakrishnan b6b5875786 track current config separately 2019-11-07 23:08:42 -08:00
Girish Ramakrishnan a887e19d46 Update mail container 2019-11-07 15:16:51 -08:00
Girish Ramakrishnan 2ab941660e Fix haraka crash
https://github.com/haraka/Haraka/issues/2732
2019-11-07 15:10:34 -08:00
Girish Ramakrishnan 97782d29cc move tokens entirely into token page 2019-11-07 14:41:28 -08:00
Girish Ramakrishnan 0c5930d5cf simplify the sessions UI 2019-11-07 14:28:52 -08:00
Girish Ramakrishnan a75769071c remove obsolete test 2019-11-07 14:23:57 -08:00
Girish Ramakrishnan 7f2af067cf Add enums for cid 2019-11-07 13:38:33 -08:00
Girish Ramakrishnan 88454e7d6c remove unused function 2019-11-07 13:35:37 -08:00
Girish Ramakrishnan 5c920fd200 never skip password verification 2019-11-07 13:10:12 -08:00
Girish Ramakrishnan 836a3659b6 Add external ldap progress bar 2019-11-07 11:39:02 -08:00
Girish Ramakrishnan ab650c7a95 more changes 2019-11-07 11:13:52 -08:00
Girish Ramakrishnan 2e6e320bd9 Make sysinfo page show detected ip 2019-11-07 10:47:40 -08:00
Girish Ramakrishnan 1e776bbbe0 Add route to get public IP 2019-11-07 10:41:15 -08:00
Girish Ramakrishnan c26597cf02 Various network page improvements 2019-11-07 10:20:34 -08:00
Girish Ramakrishnan 9a0cc4a717 Various minor UI fixes 2019-11-07 09:40:49 -08:00
Girish Ramakrishnan 81aa94c8df chrome: groups buttons were wrapping 2019-11-07 09:40:49 -08:00
Girish Ramakrishnan cd0294129f Add changes 2019-11-07 09:25:04 -08:00
Johannes Zellner d1c6e786c2 Remove unused CLOUDRON_ADMIN_EMAIL 2019-11-07 16:38:30 +01:00
Johannes Zellner ff30d6d23a Move sysinfo and dyndns settings to new network view 2019-11-07 15:26:18 +01:00
Johannes Zellner 30769b5992 We now always show the external ldap settings 2019-11-07 12:11:48 +01:00
Johannes Zellner c6d2e6cda3 Hide api token ui behind 'tokens' query and ensure button sizes are consistent 2019-11-07 12:08:51 +01:00
Johannes Zellner 3a0c29988e Update package-lock file 2019-11-07 11:10:00 +01:00
Johannes Zellner 85f1c3816b Rename account to profile 2019-11-07 11:07:57 +01:00
Girish Ramakrishnan 58d66b5293 mail: resolve list members 2019-11-06 21:45:54 -08:00
Girish Ramakrishnan 1942a7ecf4 redis: start app redis addons on image update 2019-11-06 09:38:20 -08:00
Girish Ramakrishnan 22c2add55e Update redis 2019-11-05 21:59:35 -08:00
Girish Ramakrishnan 60c5cccfc2 Add MAIL_ERROR 2019-11-05 20:55:21 -08:00
Girish Ramakrishnan b4874ec1f4 refactor getting mail auth 2019-11-05 19:54:53 -08:00
Girish Ramakrishnan d7b326bf2b clone: appdb.add must also put the reverse proxy config 2019-11-05 13:58:02 -08:00
Johannes Zellner 7040bb01f4 Ensure groups configure dialogs have all users available 2019-11-05 22:08:48 +01:00
Girish Ramakrishnan b9d8b5f973 clone: copy reverseProxyConfig 2019-11-05 12:50:30 -08:00
Girish Ramakrishnan 64fd6e0dac Allow redis with no password 2019-11-05 10:48:36 -08:00
Johannes Zellner 71f1304606 Make all multiselect search and scrollable if more than 10 items are available 2019-11-05 19:45:59 +01:00
Johannes Zellner 90d242b784 Add helper scripts to add/remove many users for testing purpose 2019-11-05 19:24:08 +01:00
Girish Ramakrishnan 868103e7e4 Add changes 2019-11-05 09:21:23 -08:00
Johannes Zellner b520b6dc13 Add sysinfo configuration 2019-11-05 15:19:48 +01:00
Johannes Zellner 3354cb8ebe Add network interface check 2019-11-05 15:03:36 +01:00
Johannes Zellner 4fc012dea0 Fix typo in sysinfo route handler 2019-11-05 13:45:06 +01:00
Johannes Zellner 82b2b0b334 Simply mention available disk space in graphs 2019-11-05 12:04:19 +01:00
Girish Ramakrishnan 947cb786d6 ldapsync: add progress callback 2019-11-04 12:05:35 -08:00
Girish Ramakrishnan 6463b84952 Add get/setSysinfoConfig 2019-10-31 19:33:05 -07:00
Girish Ramakrishnan 689f2791ba validate fields in testConfig 2019-10-31 11:46:00 -07:00
Girish Ramakrishnan 34cedbdadc Fill the usernameField 2019-10-31 11:39:42 -07:00
Girish Ramakrishnan a5ec5b0ed9 externalLdap: search and then bind 2019-10-30 15:32:49 -07:00
Girish Ramakrishnan 8e5916b785 oauth2: catch any errors in handlers 2019-10-30 15:15:36 -07:00
Girish Ramakrishnan 563f846eba style fixes 2019-10-30 14:27:58 -07:00
Girish Ramakrishnan 7781ea3205 remove this check, let if get marked as conflicting 2019-10-30 11:05:26 -07:00
Girish Ramakrishnan 2f5ece8f1d make displayName also a const 2019-10-30 11:04:19 -07:00
Girish Ramakrishnan ec46dab754 camel case 2019-10-30 11:02:21 -07:00
Girish Ramakrishnan d5d27d512c make email a constant 2019-10-30 10:59:48 -07:00
Girish Ramakrishnan 44cf25b447 bind dn can also be username 2019-10-30 09:36:02 -07:00
Girish Ramakrishnan 0a695190c4 Remove bindDn validation
in some AD setups, this is a email
2019-10-30 09:35:33 -07:00
Girish Ramakrishnan 59deca76a1 add changes 2019-10-30 09:16:55 -07:00
Girish Ramakrishnan a829ab44f1 sysinfo: remove the ec2 and scaleway providers
we can just use the generic one for those as well
2019-10-30 09:13:01 -07:00
Girish Ramakrishnan 82a7befb92 Fix crashes 2019-10-29 20:33:32 -07:00
Girish Ramakrishnan 331d0ee717 declare the variable 2019-10-29 20:20:35 -07:00
Girish Ramakrishnan addafa529f sysinfoConfig can be passed when provisioning 2019-10-29 20:12:37 -07:00
Girish Ramakrishnan 8232d471a3 Add route to set/get sysinfo 2019-10-29 20:08:45 -07:00
Girish Ramakrishnan 813454ca82 sysinfo: Add static and network intf providers 2019-10-29 16:12:58 -07:00
Girish Ramakrishnan 7d987d7c79 make sysinfo provider a setting 2019-10-29 15:56:50 -07:00
Girish Ramakrishnan 7a25187bee Disable invite & password reset route for external users 2019-10-29 11:03:28 -07:00
Johannes Zellner 94c7638c96 Mark external users with an icon 2019-10-29 13:04:44 +01:00
Johannes Zellner 6cf0727bd5 Ensure admin tooltip is fully visible 2019-10-29 12:58:54 +01:00
Johannes Zellner 561301bd28 Always show user actions, only disable them 2019-10-29 12:49:21 +01:00
Johannes Zellner 9039be8e39 Fix error reporting on password change 2019-10-29 12:39:39 +01:00
Johannes Zellner c42292d546 Also ensure the progressbar is full width 2019-10-27 22:52:12 +01:00
Johannes Zellner e21d17f6b8 Only adjust card margin on mobile 2019-10-27 22:52:12 +01:00
Girish Ramakrishnan ca2eacdd82 the v2 is implied it seems 2019-10-27 13:13:41 -07:00
Girish Ramakrishnan f97cbb5fd5 Use private registry auth 2019-10-27 13:07:07 -07:00
Girish Ramakrishnan af9f2794be Remove error suggestion for now 2019-10-27 12:01:53 -07:00
Girish Ramakrishnan 12d233c5f9 provide suggestion as part of the error 2019-10-27 12:01:30 -07:00
Girish Ramakrishnan 09fce1978e Add to changes 2019-10-25 17:06:16 -07:00
Girish Ramakrishnan 8ed2f98d1d print username field as well 2019-10-25 17:00:59 -07:00
Girish Ramakrishnan 13262d014b call unbind 2019-10-25 16:58:15 -07:00
Girish Ramakrishnan ade1187fc8 ldap: more logs 2019-10-25 16:46:55 -07:00
Girish Ramakrishnan 2404e79928 ldap: do the secret key dance 2019-10-25 16:46:49 -07:00
Girish Ramakrishnan ff84149623 ldap: add username field 2019-10-25 16:38:59 -07:00
Girish Ramakrishnan 99aea3ed60 ldap: move error to top 2019-10-25 16:13:52 -07:00
Girish Ramakrishnan d68ed91b17 ldap: add usernameField
we need this for okta where uid is the email
2019-10-25 15:50:26 -07:00
Girish Ramakrishnan 9528db700a ldap: add provider field 2019-10-25 15:42:51 -07:00
Girish Ramakrishnan 1a21423401 ldap: add provider field 2019-10-25 15:40:22 -07:00
Girish Ramakrishnan 106187e2f4 Make ldap users have disabled input instead 2019-10-25 15:25:46 -07:00
Girish Ramakrishnan e412aa9a3d Various fixes to ldap view
also, keep it enabled for all for now
2019-10-25 15:19:57 -07:00
Girish Ramakrishnan a478134759 mail: put the type and hostname in notification 2019-10-25 10:16:17 -07:00
Johannes Zellner 0a8fa40b6b Fixup various mobile view issues in the app configure view 2019-10-25 12:10:08 +02:00
Girish Ramakrishnan c639746211 Update changes 2019-10-24 21:43:09 -07:00
Girish Ramakrishnan 7a96e4858a Not found messages at the db level 2019-10-24 20:48:38 -07:00
Girish Ramakrishnan 02339d503c do not re-generate DATABASE_ERROR 2019-10-24 20:31:45 -07:00
Girish Ramakrishnan c3a5360a88 Add not implemented error code 2019-10-24 18:40:37 -07:00
Girish Ramakrishnan ad9097d212 Remove various uses of INTERNAL_ERROR
INTERNAL_ERROR now means there really was some internal error
2019-10-24 18:32:36 -07:00
Girish Ramakrishnan 6e57f8cc03 Refactor toHttpError code into BoxError 2019-10-24 18:09:55 -07:00
Girish Ramakrishnan 8a84fa5cdd fix comment 2019-10-24 18:09:48 -07:00
Girish Ramakrishnan d6365ff27f Move AppstoreError to BoxError 2019-10-24 17:47:16 -07:00
Girish Ramakrishnan 4793eb9ef5 Finish UsersError removal 2019-10-24 15:19:07 -07:00
Girish Ramakrishnan 03175aa8de IN_USE -> CONFLICT
also, remove databaseerror
2019-10-24 15:07:37 -07:00
Girish Ramakrishnan bc3169deb3 Move UsersError to BoxError 2019-10-24 15:06:41 -07:00
Girish Ramakrishnan 9b4d43075e Fix some typos 2019-10-24 14:34:10 -07:00
Girish Ramakrishnan d2c12297dc Move ExternalLdapError to BoxError 2019-10-24 14:32:27 -07:00
Girish Ramakrishnan 1a8496d61e Move MailError to BoxError 2019-10-24 14:10:23 -07:00
Girish Ramakrishnan a017af41c5 Start moving db code to use BoxError as well 2019-10-24 14:09:53 -07:00
Girish Ramakrishnan ec216d9828 Add PLAN_LIMIT for now
Should remove this and make it something else
2019-10-24 11:05:36 -07:00
Girish Ramakrishnan bce1efb77c Move AppsError to BoxError 2019-10-24 10:39:47 -07:00
Girish Ramakrishnan b078d37f37 Remove REVERSEPROXY_ERROR 2019-10-24 10:31:56 -07:00
Girish Ramakrishnan 8d944f74c0 Make reverseProxy return BoxError consistently 2019-10-24 10:28:38 -07:00
Girish Ramakrishnan 1e8fb61abf Add warning on data loss 2019-10-24 10:07:34 -07:00
Girish Ramakrishnan ee4e90deb5 Add modal restore dialog 2019-10-24 10:01:23 -07:00
Girish Ramakrishnan e2124bac5a Add tooltip to show the raw time 2019-10-24 09:40:11 -07:00
Girish Ramakrishnan dc10b8a07f Move AddonsError to BoxError 2019-10-23 15:57:01 -07:00
Girish Ramakrishnan 7b9f741522 Move ProvisionError to BoxError 2019-10-23 15:45:09 -07:00
Girish Ramakrishnan 51cb3b0ba8 Move DomainsError to BoxError 2019-10-23 15:15:19 -07:00
Girish Ramakrishnan 4db4834c90 rename variable 2019-10-23 15:03:42 -07:00
Girish Ramakrishnan e1f0d12251 Fix error handling 2019-10-23 09:53:46 -07:00
Girish Ramakrishnan e2388b7d88 Move UpdaterError to BoxError 2019-10-23 09:39:26 -07:00
Girish Ramakrishnan d0e6b6bfe4 Do not re-translate to DockerError 2019-10-23 09:30:05 -07:00
Girish Ramakrishnan c1b95547d7 This can also be a token
https://www.docker.com/blog/docker-hub-new-personal-access-tokens/
2019-10-23 06:51:12 -07:00
Girish Ramakrishnan b6f2c94464 test registry config 2019-10-23 06:49:29 -07:00
Girish Ramakrishnan 28025cfb44 Add email field to registry config 2019-10-23 06:48:34 -07:00
Girish Ramakrishnan 8cdddef077 Add registry config to settings table 2019-10-22 22:56:25 -07:00
Girish Ramakrishnan 7c978f6c1c Add ui to configure registry 2019-10-22 22:42:55 -07:00
Girish Ramakrishnan e82ac5ecc5 Ensure docker code returns BoxError 2019-10-22 21:46:32 -07:00
Girish Ramakrishnan db6c07f86a Move ReverseProxyError with BoxError 2019-10-22 21:24:31 -07:00
Girish Ramakrishnan 2df642000d Move ClientsError to BoxError 2019-10-22 21:16:49 -07:00
Girish Ramakrishnan 11d80cec7d Fix mailbox tests 2019-10-22 21:03:47 -07:00
Girish Ramakrishnan 8c9ce30d29 Move BackupsError to BoxError 2019-10-22 21:03:47 -07:00
Girish Ramakrishnan df142994a8 Move TaskError into BoxError 2019-10-22 21:03:47 -07:00
Girish Ramakrishnan 2d115d3d0f Move GroupsError to BoxError 2019-10-22 16:34:17 -07:00
Girish Ramakrishnan 1b594d3e50 Remove unused GroupsError 2019-10-22 16:26:38 -07:00
Girish Ramakrishnan 332f2e7c10 Move SysInfoError to BoxError 2019-10-22 14:09:44 -07:00
Girish Ramakrishnan a7614cef2e Move CloudronError to BoxError 2019-10-22 14:06:19 -07:00
Girish Ramakrishnan 9842b6d4a1 Move EventLogError to BoxError 2019-10-22 13:59:01 -07:00
Girish Ramakrishnan 88818a1ec2 Move NotificationsError to BoxError 2019-10-22 13:00:10 -07:00
Girish Ramakrishnan 812f5cce99 Move DisksError to BoxError 2019-10-22 11:11:41 -07:00
Girish Ramakrishnan fdf7da9111 Move SupportError to BoxError 2019-10-22 11:08:19 -07:00
Girish Ramakrishnan ed9e1772ea move SettingsError to BoxError 2019-10-22 11:06:14 -07:00
Girish Ramakrishnan 470936476e Move buttons to right 2019-10-22 10:49:57 -07:00
Girish Ramakrishnan 657a2cac2f Add pagination to mailbox listing 2019-10-22 10:12:06 -07:00
Girish Ramakrishnan 9c418e110f Make unstable apps a normal button 2019-10-22 10:06:32 -07:00
Johannes Zellner 499cb76492 Add app listing filter for recently updated apps 2019-10-22 17:51:09 +02:00
Johannes Zellner bb00327e81 Ensure we don't cut off tooltips in apps view 2019-10-22 15:56:53 +02:00
Johannes Zellner e79dec3c2b sort mailinglists by name 2019-10-22 12:52:03 +02:00
Johannes Zellner ab23882c27 Add basic search filter for mailboxes and mailinglists 2019-10-22 12:47:32 +02:00
Johannes Zellner a22602f6d1 Always mention how mailinglist addresses should be separated
The placeholder is not shown once anything is typed
2019-10-21 13:02:45 +02:00
Girish Ramakrishnan d15aa2744d Fix return code if start.sh is bad 2019-10-20 13:35:19 -07:00
Girish Ramakrishnan 29ab3e91b3 gcs: remove concurrency logic
this is more complicated than necessary
2019-10-18 18:54:25 -07:00
Girish Ramakrishnan c1ba1014c3 support: allow input of additional email 2019-10-18 18:23:58 -07:00
Johannes Zellner f393f58bce Source the dns setup image from the api server 2019-10-18 21:54:59 +02:00
Johannes Zellner b06d1fd293 Add server provider query argument to dns setup 2019-10-17 13:25:25 +02:00
Johannes Zellner ac32e76eec Add dns setup logo 2019-10-16 14:16:54 +02:00
Girish Ramakrishnan 420fe0df0d Only required for email_error 2019-10-15 12:00:37 -07:00
Girish Ramakrishnan f6377fd1c6 Add email_error type 2019-10-15 11:48:20 -07:00
Girish Ramakrishnan 122a987d61 4.3 changes 2019-10-15 11:40:36 -07:00
Girish Ramakrishnan b035030867 Add altEmail to support ticket (when mail is down) 2019-10-15 11:39:57 -07:00
Girish Ramakrishnan 4610e78d91 Add altEmail to support ticket (when mail is down) 2019-10-15 11:39:44 -07:00
Girish Ramakrishnan 351bd46cb7 Make external backup restore a separate route (import)
fixes #650
2019-10-15 09:20:29 -07:00
Girish Ramakrishnan a641fec3ae Set CSP instead of frameAncestors 2019-10-14 17:20:35 -07:00
Girish Ramakrishnan 8878bc4bf9 frameAncestors -> csp
It seems we cannot separate frame ancestors from CSP because the hide
header just hides everything and not a specific resource. This means
that the user has to set or unset the full policy whole sale.
2019-10-14 17:12:01 -07:00
Girish Ramakrishnan 61b6bee946 Remove unused variable 2019-10-14 16:07:45 -07:00
Girish Ramakrishnan 13c3624025 Add ui for frame-ancestors 2019-10-14 16:04:41 -07:00
Girish Ramakrishnan 9997cbddb8 Do not escape as html 2019-10-14 16:03:57 -07:00
Girish Ramakrishnan 7115498f32 Send reverseProxyConfig in REST response 2019-10-14 15:57:41 -07:00
Girish Ramakrishnan 0f05c243aa Remove redundant type checking validation 2019-10-14 15:18:21 -07:00
Girish Ramakrishnan 9c12f1fe15 Add field to configure the reverse proxy
part of #596
2019-10-14 15:05:25 -07:00
Girish Ramakrishnan 7383cc4e90 email: Auto-subscribe to Spam folder 2019-10-14 14:31:39 -07:00
Girish Ramakrishnan 6466b47ada 4.3 changes 2019-10-14 14:16:43 -07:00
Girish Ramakrishnan 1856fc05d9 Add timeout for apptask as well 2019-10-14 14:16:15 -07:00
Girish Ramakrishnan a19662bdfa Add a timeout for update as well
this will send a notification if an update gets stuck
2019-10-14 13:05:12 -07:00
Girish Ramakrishnan 488763fc42 rename appconfig to nginxconfig 2019-10-13 17:08:33 -07:00
Girish Ramakrishnan 7cbe60a484 Fix crash when only udp ports are defined 2019-10-11 20:39:03 -07:00
Girish Ramakrishnan ded9a6e377 Revert "remove unused function"
This reverts commit a19205e3ad.
2019-10-11 20:30:30 -07:00
Girish Ramakrishnan ea205363a0 More 4.2.7 changes 2019-10-11 20:23:33 -07:00
Girish Ramakrishnan ad13445c93 Revert "apptask: backupId/format is not part of install anymore"
This reverts commit 49e5c60422.
2019-10-11 20:21:48 -07:00
Girish Ramakrishnan eb5c2ed30b notify failed backups
fixes #649
2019-10-11 19:54:15 -07:00
Girish Ramakrishnan bd3080a6b3 lint 2019-10-11 19:54:15 -07:00
Girish Ramakrishnan be5290c5ca Add error code for timeout 2019-10-11 19:54:15 -07:00
Girish Ramakrishnan 43fd207164 Kill backup task after 12 hours
this will automatically notify by email

part of #649
2019-10-11 19:13:39 -07:00
Girish Ramakrishnan 34c53694a0 Add timeout option when starting task
Part of #649
2019-10-11 19:13:39 -07:00
Girish Ramakrishnan 927f8483ce 4.2.7 changes 2019-10-11 18:43:39 -07:00
Girish Ramakrishnan 16728ab51c Fix wrong icons for non-admins 2019-10-11 18:35:09 -07:00
Girish Ramakrishnan 247eea1a0c Remove unused function 2019-10-11 15:24:25 -07:00
Girish Ramakrishnan bf454816ea On error, reset the busy flag
this happens when icon is too large, for example
2019-10-11 15:18:52 -07:00
Girish Ramakrishnan 36028632ac simplify 2019-10-11 14:59:12 -07:00
Girish Ramakrishnan 0e386d33b0 Remove dead code 2019-10-11 14:53:44 -07:00
Girish Ramakrishnan 4f9d8915fb Hide progress bar for normal users
They cannot get the progress information anyway
2019-10-11 14:50:50 -07:00
Girish Ramakrishnan 0d94e4290b Remove the "v" from the version 2019-10-11 10:58:06 -07:00
Girish Ramakrishnan a19205e3ad remove unused function 2019-10-07 22:10:02 -07:00
Girish Ramakrishnan 49e5c60422 apptask: backupId/format is not part of install anymore 2019-10-07 15:29:18 -07:00
Girish Ramakrishnan 57b623ee44 Fix install with backupId 2019-10-07 15:01:00 -07:00
Johannes Zellner a1426bc81b Fix copy and paste error for namecheap input label 2019-10-06 16:20:40 +02:00
Johannes Zellner d98d36d97b Disable documentation url is not set in app manifest 2019-10-06 16:20:40 +02:00
Girish Ramakrishnan bf930d2ae0 Fix email reconfigure 2019-10-04 11:20:27 -07:00
Girish Ramakrishnan 0c904af927 tpyo 2019-10-03 15:25:52 -07:00
Girish Ramakrishnan 9cd025972c Try acme flow 3 times 2019-10-03 14:47:18 -07:00
Girish Ramakrishnan 21111eccc4 retry downloadCertificate 2019-10-03 14:37:12 -07:00
Girish Ramakrishnan 917079f341 Add error message to network error 2019-10-03 14:33:49 -07:00
Girish Ramakrishnan 631730bf3a repair can always be called
this is because sometimes cloudron thinks there is no error, but there is
2019-10-03 12:23:36 -07:00
Girish Ramakrishnan 4d6d768be1 Append apptask logs 2019-10-03 12:20:15 -07:00
Girish Ramakrishnan c54cd992ca Validate the location passed in repair route 2019-10-03 12:08:05 -07:00
Girish Ramakrishnan d5ec599dd1 repair can always be called
this is because sometimes cloudron thinks there is no error, but there is
2019-10-03 11:30:00 -07:00
Girish Ramakrishnan 0542ab16d4 If cert renewal failed, continue using old cert 2019-10-03 11:11:02 -07:00
Girish Ramakrishnan 7e75ef7685 cert: add more debugs 2019-10-03 10:36:57 -07:00
Johannes Zellner f296265461 Add changes 2019-10-03 16:31:01 +02:00
Johannes Zellner fb4eade215 Location in configure route may be an empty string 2019-10-03 16:23:01 +02:00
Johannes Zellner 8d34a4c5a1 Ensure the notification badge has its place in the layout calculation
The float property makes it overflow on high notification numbers
2019-10-03 13:32:43 +02:00
Johannes Zellner 8b3e85907c Add 4.2.5 changes 2019-10-02 18:41:42 +02:00
Johannes Zellner ca4876649d The demo setting didn't go well 2019-10-02 18:39:06 +02:00
Johannes Zellner 7ebc2abe5d Add 4.2.4 changes 2019-10-02 14:15:46 +02:00
Johannes Zellner 37e132319b Ensure demo setting is '' or 'enabled' 2019-10-02 12:58:32 +02:00
Johannes Zellner b2728118e9 Remove unused require 2019-10-02 12:13:18 +02:00
Girish Ramakrishnan c428f649aa typo 2019-10-01 14:40:24 -07:00
Girish Ramakrishnan 7baf979a59 Fix verbose logs 2019-10-01 14:39:40 -07:00
Girish Ramakrishnan ccecaca047 Fix crash 2019-10-01 14:04:39 -07:00
Girish Ramakrishnan c7ee684f25 Fix bug where nginx was not reloaded on cert renewal
Looks like it worked so far because nginx got reloaded in situations
like apptask or server reboot.
2019-10-01 11:25:57 -07:00
Girish Ramakrishnan 52156c9a35 Remove unused type field 2019-10-01 11:17:12 -07:00
Johannes Zellner c8f50fc117 If app is not found while app view is visible, go back 2019-10-01 20:04:28 +02:00
Girish Ramakrishnan 4fba216af9 scaleway: try to keep part numbers low 2019-09-30 20:42:37 -07:00
Girish Ramakrishnan 1d00c788d1 Remove dead code 2019-09-30 15:54:18 -07:00
Girish Ramakrishnan d891d39587 reverseproxy: rename to writeDefaultConfig 2019-09-30 15:28:05 -07:00
Girish Ramakrishnan cfde6e31ad reverseproxy: improve the note 2019-09-30 15:25:53 -07:00
Girish Ramakrishnan 243772d1f5 reverseproxy: do not export reload 2019-09-30 15:23:53 -07:00
Girish Ramakrishnan 1c36b8eaf7 Add debugs 2019-09-30 11:52:23 -07:00
Girish Ramakrishnan 120fa4924a Remove confusing isInstalling usage 2019-09-30 09:58:13 -07:00
Girish Ramakrishnan c3c9c2f39a Always pass restoreConfig for the restore case 2019-09-30 09:47:14 -07:00
Girish Ramakrishnan fc90829ba2 repair: Use backupId only if passed in via REST API 2019-09-30 09:13:13 -07:00
Johannes Zellner cfdb7b32fc Fix basic layout issues on small screens for app view 2019-09-30 15:19:48 +02:00
Girish Ramakrishnan cc833f0b73 Stop any active app task on uninstall 2019-09-29 16:55:03 -07:00
Girish Ramakrishnan 47282afa22 Overwrite existing DNS records in repair 2019-09-29 16:37:38 -07:00
Girish Ramakrishnan 417640cfbe Fix hyphenation of alt domains in repair dialog 2019-09-29 16:37:35 -07:00
Johannes Zellner 8df1690d5d Fix yet another layout issue with long fqdn's 2019-09-28 15:49:35 +02:00
Girish Ramakrishnan 461d1bcd5b Add note about pause in the repair section 2019-09-27 15:25:46 -07:00
Girish Ramakrishnan 8b5e164291 Fix login eventlog 2019-09-27 15:07:37 -07:00
Girish Ramakrishnan 2644f56755 Show portBinding conflicts properly 2019-09-27 14:47:49 -07:00
Girish Ramakrishnan ce9224c690 Set the domain and subdomain in details 2019-09-27 14:42:18 -07:00
Girish Ramakrishnan 437e6baeba eventlog: Add icon set/reset 2019-09-27 13:44:57 -07:00
Girish Ramakrishnan 6788d37b6f Configure label and tags only if changed 2019-09-27 13:38:30 -07:00
Girish Ramakrishnan b90550d6ba Fix display of alt domains 2019-09-27 12:58:39 -07:00
Girish Ramakrishnan 18a2107247 Attach fqdn information consistently in the eventlog 2019-09-27 11:50:22 -07:00
Girish Ramakrishnan f13d05dad7 Update changes 2019-09-27 11:09:50 -07:00
Girish Ramakrishnan 86586444a9 Validate alternate domain
this also sets up fqdn in the eventlog entries
2019-09-27 10:58:59 -07:00
Johannes Zellner c068deb47e Avoid some text decoration on app title in various states 2019-09-27 19:55:45 +02:00
Johannes Zellner 2ce5b28048 Fixup postinstall message if app link is clicked 2019-09-27 19:43:03 +02:00
Johannes Zellner 57f1751309 Fix terminal restart and other state issues 2019-09-27 19:13:08 +02:00
Girish Ramakrishnan 4e47d0595d Remove ACTION_BACKUP_CLEANUP_START 2019-09-27 09:43:40 -07:00
Girish Ramakrishnan 2d8dc36f28 Elaborate what kind of backup 2019-09-27 09:34:01 -07:00
Johannes Zellner 077a717525 Move all STATEs to client.js so we can use them in other angular apps like terminal 2019-09-27 18:11:48 +02:00
Johannes Zellner 8795493462 Fixup linter issues in terminal view 2019-09-27 17:43:33 +02:00
Johannes Zellner af532bae8f Make app main header the open app action instead of the button 2019-09-27 16:35:43 +02:00
Girish Ramakrishnan 45e85e4d53 Set overwriteDns to be true when re-configuring 2019-09-26 22:30:58 -07:00
Girish Ramakrishnan c07b3e2d3c lint 2019-09-26 22:23:08 -07:00
Girish Ramakrishnan 6b1a9fa837 just return 'paused' 2019-09-26 22:16:37 -07:00
Girish Ramakrishnan 24888dfad5 terminal: repair -> pause 2019-09-26 22:16:37 -07:00
Girish Ramakrishnan 4d4c8638ca eventlog: Fix display of app.repair 2019-09-26 21:36:11 -07:00
Girish Ramakrishnan 9fd983abfb Make eventlog filter as functions
Some of the events requires access to domains and apps, making it hard
unsuitable for filters
2019-09-26 21:27:18 -07:00
Girish Ramakrishnan 637839ee14 remove unused filter 2019-09-26 21:10:26 -07:00
Girish Ramakrishnan a3420f885d Fix use of skipBackup
also, store it in the eventlog
2019-09-26 20:18:49 -07:00
Girish Ramakrishnan 9b2578665f Add finish events to the filter 2019-09-26 20:13:24 -07:00
Girish Ramakrishnan ee05e109c8 Add checkbox to skip backup for app update 2019-09-26 20:10:25 -07:00
Girish Ramakrishnan a266fe13d0 Remove skipNotification flag
we always want a update finish eventlog. Otherwise, the eventlog seems
strange since it says 'started updated' but didn't finish
2019-09-26 20:06:14 -07:00
Girish Ramakrishnan a905e32cde eventlog: fix text of update events 2019-09-26 19:04:28 -07:00
Girish Ramakrishnan fb5cec0d38 eventlog: Make next button disabled in last page 2019-09-26 18:27:00 -07:00
Girish Ramakrishnan 1a4f490fb5 Display the backupId 2019-09-26 18:23:13 -07:00
Girish Ramakrishnan 44aba5d6e1 Add changes 2019-09-26 15:00:00 -07:00
Girish Ramakrishnan 3fe5307ae3 Migrate PROVIDER from cloudron.conf correctly 2019-09-26 14:19:25 -07:00
Girish Ramakrishnan d03fb0e71f Add separate flags for skipping backup and notification 2019-09-26 13:06:15 -07:00
Johannes Zellner 4518c2c4c0 Use img tag instead of background-image for custom icon to avoid flickering 2019-09-26 21:12:14 +02:00
Johannes Zellner 17771ccecd Make app documentation a dropdown to show postinstall and upstream project link 2019-09-26 21:12:14 +02:00
Girish Ramakrishnan f3c2a3c025 Remove the 'Daily' 2019-09-26 10:07:15 -07:00
Girish Ramakrishnan d9723b72e4 Replace Acme2Error with BoxError 2019-09-25 14:13:10 -07:00
Girish Ramakrishnan 6ba61f1bda Update changes 2019-09-25 10:30:54 -07:00
Girish Ramakrishnan d1df647ddd Another migration typo 2019-09-25 10:22:43 -07:00
Girish Ramakrishnan 95c4a1f90c Handle db migration failure 2019-09-25 10:17:02 -07:00
Girish Ramakrishnan e00325e694 typo 2019-09-25 10:06:48 -07:00
Johannes Zellner 2aa919b444 Fix update error overflow in settings view 2019-09-25 11:49:09 +02:00
Girish Ramakrishnan 85c13cae58 Fix platform update logic 2019-09-24 21:21:49 -07:00
Girish Ramakrishnan 00fd9e5b7f add note that db upgrade code path is br0ken 2019-09-24 20:05:55 -07:00
Girish Ramakrishnan dde81ee847 lint 2019-09-24 19:50:24 -07:00
Girish Ramakrishnan c46fc96500 stash the taskId instead of args 2019-09-24 13:06:13 -07:00
Johannes Zellner 408987ee30 avoid task progress flickering 2019-09-24 21:27:49 +02:00
Johannes Zellner fe04ad9940 Show task progress as progress bar instead of indicator 2019-09-24 21:08:42 +02:00
Johannes Zellner 1b03e750a2 Remove unnecessary retry to fetch domains in apps view 2019-09-24 19:56:31 +02:00
Johannes Zellner 3ff781139e Add pre-flight and fix clone dialog 2019-09-24 18:50:52 +02:00
Johannes Zellner 2ea3ba492e Prevent angular from throwing exceptions if error is null 2019-09-24 18:46:07 +02:00
Girish Ramakrishnan 89d3228077 Do not show overwrite when creds are invalid 2019-09-24 01:03:57 -07:00
Girish Ramakrishnan 1914a9a703 Capitalize the Denied to be in sync with boxerror 2019-09-24 00:58:49 -07:00
Girish Ramakrishnan 1a061e4446 Only check installationState to resume tasks
also, make resumeTasks go via app logic to capture end of task
2019-09-24 00:37:29 -07:00
Girish Ramakrishnan 7946f5ee81 Rename func and put error below the control label 2019-09-24 00:04:31 -07:00
Girish Ramakrishnan 44f62eac9a Add error suggestion 2019-09-23 23:51:15 -07:00
Girish Ramakrishnan 47725e57b0 Fixup repair text 2019-09-23 23:28:14 -07:00
Girish Ramakrishnan 29ce80cebe Use DOCKER_ERROR for docker errors 2019-09-23 23:27:32 -07:00
Girish Ramakrishnan aac2aaa999 Make repair always visible 2019-09-23 22:03:54 -07:00
Girish Ramakrishnan 4b6ac538ac clear the timeout just to be safe 2019-09-23 18:17:05 -07:00
Girish Ramakrishnan 70b9000b0e Fix various app state issues
Tasks initiated by repair/uninstall can run from any state
Clear taskId for failed uninstall
Clone/install can only be run on new entries
2019-09-23 18:07:12 -07:00
Girish Ramakrishnan 6ac1160bf2 Make stop/start work again 2019-09-23 15:50:41 -07:00
Girish Ramakrishnan 24dcb1b79c typo 2019-09-23 15:31:09 -07:00
Johannes Zellner 70fae41042 Handle dns overwrite in appstore view 2019-09-24 00:21:12 +02:00
Johannes Zellner 07f5bfe3dc Provide appstore install overwrite checkbox 2019-09-24 00:21:12 +02:00
Girish Ramakrishnan 93a88a22b9 Move the collision list to the top 2019-09-23 15:13:50 -07:00
Girish Ramakrishnan 792faa1176 remove extra arg 2019-09-23 14:57:37 -07:00
Johannes Zellner 384915883f Add namecheap token error changes 2019-09-23 23:49:43 +02:00
Johannes Zellner 66900d594f Add app install dns preflight check 2019-09-23 23:47:33 +02:00
Johannes Zellner 9555f3c853 Adjust to new dns_check api 2019-09-23 23:47:12 +02:00
Johannes Zellner 4cfc75f1d1 Handle namecheap ACCESS_DENIED 2019-09-23 23:35:29 +02:00
Girish Ramakrishnan c49cbb524d Design the route for pre-flight 2019-09-23 14:34:29 -07:00
Girish Ramakrishnan b401c3d930 Make schedule task take the command as arg 2019-09-23 14:18:14 -07:00
Girish Ramakrishnan 890a7cfb37 runState is not used for task anymore 2019-09-23 13:49:38 -07:00
Johannes Zellner 9ed2fa734a Add location and domain selector to repair dialog 2019-09-23 22:45:45 +02:00
Johannes Zellner db83508920 Remove ... from installation state label
Makes the filter not useful in sentences
2019-09-23 22:45:16 +02:00
Girish Ramakrishnan 70a1ef1af3 Can call uninstall as long as no task is active 2019-09-23 13:32:52 -07:00
Girish Ramakrishnan 38a0cdc0be Make the repair re-issue the install command
Otherwise, repairing a repair has to be handled
2019-09-23 13:21:25 -07:00
Girish Ramakrishnan 93344a5a4a Use 424 for access denied 2019-09-23 13:10:16 -07:00
Johannes Zellner d72a6585d4 Handle pre-flight domain check api access issue 2019-09-23 21:38:35 +02:00
Girish Ramakrishnan 74fc8c9cf7 Add repair state 2019-09-23 12:34:47 -07:00
Girish Ramakrishnan 9f792fc04b Remove DockerError 2019-09-23 12:20:25 -07:00
Girish Ramakrishnan 7cb95faacb typo 2019-09-23 10:49:50 -07:00
Girish Ramakrishnan bf122f0f56 Allow uninstall in error state 2019-09-23 10:40:22 -07:00
Johannes Zellner f3440f3c01 Show debug view if app errors while having some other view open 2019-09-23 19:37:40 +02:00
Girish Ramakrishnan b01799c606 Move help text down 2019-09-23 10:25:12 -07:00
Johannes Zellner 3cbb4e3f43 Handle location change api key invalid error 2019-09-23 19:23:06 +02:00
Girish Ramakrishnan 36299acbfb lint 2019-09-23 10:16:19 -07:00
Girish Ramakrishnan 78e9446a05 Refactor repair into separate function 2019-09-23 10:15:58 -07:00
Girish Ramakrishnan acc20af2d9 Fix text 2019-09-23 09:56:31 -07:00
Girish Ramakrishnan 077ce5b521 Fixup text 2019-09-23 09:54:40 -07:00
Girish Ramakrishnan 138e1595fa make legacy error messages as JSON 2019-09-23 09:13:43 -07:00
Johannes Zellner 1efe82dda2 Remove debug code and fixup ISTATE usage 2019-09-23 16:53:48 +02:00
Johannes Zellner f283618209 Only show error message if also set 2019-09-23 16:27:05 +02:00
Johannes Zellner 37b02ad36a oldConfig is only used for location configure now 2019-09-23 16:24:18 +02:00
Johannes Zellner 02f0055594 On repair oldConfig might not come as an argument 2019-09-23 16:18:44 +02:00
Girish Ramakrishnan ec1f0f9320 Do not do dataDir move in configure 2019-09-23 07:15:36 -07:00
Girish Ramakrishnan bfe6389f62 oldConfig is optional in configure 2019-09-23 07:13:51 -07:00
Johannes Zellner fe6baf8dba Attempt to cover most repair cases 2019-09-23 15:32:38 +02:00
Johannes Zellner 30db3e8973 Fix typo in sql query 2019-09-23 15:01:20 +02:00
Johannes Zellner 5b67f2cf29 Add apt packages required for samba mounts
The linux-generic package is anyways important for ensuring extra
modules will be rebuilt during updates.
2019-09-23 12:21:37 +02:00
Girish Ramakrishnan a007b74b1c Do no reparse null 2019-09-22 23:08:07 -07:00
Girish Ramakrishnan a89482d4fa Send the error as a task argument
Note that if apptask dies, we will automatically restart the repair
task with the args.
2019-09-22 22:50:35 -07:00
Girish Ramakrishnan 0cd4f133aa Do not configure/restore errored apps automatically 2019-09-22 22:44:28 -07:00
Girish Ramakrishnan e5ba4ff973 Handle legacy app error message
For apps in errored state, from a previous version of Cloudron
2019-09-22 22:25:34 -07:00
Girish Ramakrishnan ce133b997d Make runState non-nullable 2019-09-22 22:07:47 -07:00
Girish Ramakrishnan 217632354f Allow repair in non-errored state 2019-09-22 21:56:07 -07:00
Girish Ramakrishnan 9841351190 Call configure for all the non-reinstall states 2019-09-22 09:38:36 -07:00
Johannes Zellner b742dc51fb Ensure we can start a stopped app 2019-09-22 12:21:39 +02:00
Johannes Zellner c8ea649afc Display error message in debug view 2019-09-22 12:16:20 +02:00
Johannes Zellner a27e94f694 Only allow debug and uninstall views on app error 2019-09-22 12:10:44 +02:00
Girish Ramakrishnan 25f9e7829f Fix run state handling 2019-09-22 01:02:39 -07:00
Girish Ramakrishnan f3341f4b7f Make start/stop just a installation code
the runState now just tracks if an app is stopped.
2019-09-22 01:01:52 -07:00
Girish Ramakrishnan ff1f448860 Fixup repair route
* Do not allow scheduling tasks in error state
* Only repair is allowed in error state
* Use the error object to track what to 'repair' (like the lastState)
* If uninstall failed, repair will do uninstall
* If move dir failed, repair will do move dir
2019-09-22 00:04:25 -07:00
Johannes Zellner 85be7acab2 add initial repair dialog with domain/backup selection 2019-09-21 22:45:26 +02:00
Johannes Zellner 36c23227e5 Fix location form submission bug on enter 2019-09-21 11:07:20 +02:00
Johannes Zellner 0b6f68e190 Fix layout issue if app domain is too long 2019-09-21 11:02:00 +02:00
Girish Ramakrishnan 37f28746fc Do not setup logrotate & collectd in update 2019-09-20 20:10:52 -07:00
Girish Ramakrishnan 6c90fc2764 add app creation time 2019-09-20 09:20:41 -07:00
Johannes Zellner 4fd1e55ae8 Add pre-flight check for domain collision 2019-09-20 11:32:15 +02:00
Girish Ramakrishnan 9a22ba3af7 Add repair route
this is specifically for the case where some task failed and user
wants to get it back.
2019-09-19 23:13:44 -07:00
Girish Ramakrishnan 2942da78de Add TASK_ERROR reason code 2019-09-19 23:13:13 -07:00
Girish Ramakrishnan 89ff6be971 Make domain a field 2019-09-19 22:45:44 -07:00
Girish Ramakrishnan be0d7bcce1 Typo 2019-09-19 22:30:51 -07:00
Girish Ramakrishnan 9672f7e3da Remove "App" 2019-09-19 18:01:12 -07:00
Girish Ramakrishnan 50d29f8ef0 Use simple input field for custom data dir instead of checkbox (email) 2019-09-19 18:00:18 -07:00
Girish Ramakrishnan 6ffa00026e pending_configure is dead 2019-09-19 17:36:31 -07:00
Girish Ramakrishnan c4677505ac Fix debug_mode route 2019-09-19 17:30:24 -07:00
Girish Ramakrishnan bac6d7cf3c Revert "Add repair state"
This reverts commit 85ea91e0e3.
2019-09-19 17:15:43 -07:00
Johannes Zellner 851b257678 Fix typo 2019-09-20 02:05:19 +02:00
Girish Ramakrishnan 85ea91e0e3 Add repair state 2019-09-19 17:03:52 -07:00
Girish Ramakrishnan 579eacb644 Better pending state check 2019-09-19 16:42:49 -07:00
Girish Ramakrishnan f52c5b584e Fix crash when resuming stopped apps 2019-09-19 16:40:38 -07:00
Johannes Zellner 09b09086ce Use simple input field for custom data dir instead of checkbox 2019-09-20 01:22:10 +02:00
Johannes Zellner 8fbfa86a7f Do not randomly throw unhandled error notifications 2019-09-20 00:51:16 +02:00
Girish Ramakrishnan 8980c18deb Send back error when access denied 2019-09-19 15:24:21 -07:00
Girish Ramakrishnan b05a9ce064 Add API to get dns record 2019-09-19 15:10:27 -07:00
Johannes Zellner 6224e942dc Track backup progress 2019-09-20 00:05:17 +02:00
Johannes Zellner ab5edbdd41 Add postinstall message to app view 2019-09-20 00:03:58 +02:00
Girish Ramakrishnan 7825d10f18 Move the error down 2019-09-19 14:51:32 -07:00
Johannes Zellner 8c1988e480 handle reserved domain errors 2019-09-19 22:02:37 +02:00
Girish Ramakrishnan 8403b811d8 Fix font size 2019-09-19 12:50:55 -07:00
Girish Ramakrishnan 1c797505ae Fixup debug tab 2019-09-19 12:50:06 -07:00
Girish Ramakrishnan 466086b509 Fixup backup tab 2019-09-19 12:24:22 -07:00
Girish Ramakrishnan 221f7247e6 rename title 2019-09-19 12:00:35 -07:00
Girish Ramakrishnan 624bc88f74 Make separate section in updates view 2019-09-19 11:58:11 -07:00
Johannes Zellner d6ca4458e4 Make active task overlay less verbose 2019-09-19 20:43:58 +02:00
Girish Ramakrishnan 1fe3e60468 Merge the email explanation 2019-09-19 11:30:30 -07:00
Girish Ramakrishnan aa65b2b97c dataDir explanation 2019-09-19 11:22:57 -07:00
Johannes Zellner 6dea2475c7 Prevent some more angular warnings if app object isn't set yet 2019-09-19 19:46:20 +02:00
Girish Ramakrishnan a666cb00eb Fixup uninstall UI 2019-09-19 10:28:19 -07:00
Johannes Zellner f0fac9165c Fix open app button in app view 2019-09-19 19:19:51 +02:00
Johannes Zellner e51eb8a9c1 Ensure back button from apps grid into app view works no first usage 2019-09-19 19:19:36 +02:00
Johannes Zellner 4822984e34 Some code cleanup 2019-09-19 18:41:08 +02:00
Johannes Zellner 4a558a7f65 Enabling backups and auto updates is not a danger action 2019-09-19 18:41:08 +02:00
Johannes Zellner 48d4935c7d Ensure error states are cleared 2019-09-19 18:41:08 +02:00
Girish Ramakrishnan 506accfe9b Show hr only when we have sftp section 2019-09-19 09:35:25 -07:00
Girish Ramakrishnan c15aba47f5 Fix installation state label text to have ... 2019-09-19 09:28:33 -07:00
Johannes Zellner fdafa8adf6 Only allow to open app when runState is also running 2019-09-19 18:27:02 +02:00
Johannes Zellner 23e15581f3 Make sure we cleanup polling timers on view switch 2019-09-18 18:18:43 +02:00
Girish Ramakrishnan 1974314c1f Add changes 2019-09-18 09:12:25 -07:00
Johannes Zellner 1621f866a8 Cleanup apps view while removing update modal 2019-09-18 18:10:51 +02:00
Johannes Zellner f03fe33b1f Prevent angular erros if app is null in some filter 2019-09-18 18:06:03 +02:00
Johannes Zellner 6ec2a5ea35 If app is in error state directly go to debug view 2019-09-18 17:48:07 +02:00
Johannes Zellner 0ae4d323f7 Allow deep linking into the app configure views 2019-09-18 17:45:13 +02:00
Johannes Zellner 930404e482 Ensure we use the same danger color also in form validations 2019-09-18 17:17:36 +02:00
Johannes Zellner 92257afdab Enable custom app data dir setting 2019-09-18 17:12:10 +02:00
Johannes Zellner 300ff09a47 Move app error handling to simply show the app configure view 2019-09-18 15:54:19 +02:00
Johannes Zellner 14dd1103eb Fix angular interval usage 2019-09-18 15:53:57 +02:00
Johannes Zellner 2bde023d4d Use a file based session store
This prevents login sessions to be lost after a box restart
2019-09-18 13:00:03 +02:00
Girish Ramakrishnan 3a10003246 libssl1 asking for restart prompt during install
https://unix.stackexchange.com/questions/146283/how-to-prevent-prompt-that-ask-to-restart-services-when-installing-libpq-dev
https://github.com/confluentinc/castle/pull/1
https://bugs.launchpad.net/ubuntu/+source/ansible/+bug/1833013
2019-09-17 14:43:11 -07:00
Johannes Zellner ff07eb1de0 Always poll for app status updates when an app configure view is open 2019-09-17 22:38:11 +02:00
Johannes Zellner b81f45bf47 Selectively show the email configure view 2019-09-17 22:05:32 +02:00
Johannes Zellner eb3232e049 Add update check and apply buttons in app view 2019-09-17 17:14:40 +02:00
Johannes Zellner 752f653f82 Improve the tab view 2019-09-17 16:19:43 +02:00
Johannes Zellner ed90dbe7b7 Improve app backup view 2019-09-17 16:16:54 +02:00
Johannes Zellner e1e0f2944b Make uninstall a separate view 2019-09-17 15:40:04 +02:00
Johannes Zellner 2269f15b66 Merge overview bits into other more relevant views 2019-09-17 15:32:43 +02:00
Johannes Zellner 5c0a53e02a Bring back email view in app configure 2019-09-17 15:09:39 +02:00
Johannes Zellner 8810439ffc Reset views on change 2019-09-17 14:52:22 +02:00
Johannes Zellner 9d61270937 Add artificial 1sec delay to simple app form submissions 2019-09-17 14:49:26 +02:00
Girish Ramakrishnan 1b08710b7e Update haraka 2019-09-16 14:44:57 -07:00
Girish Ramakrishnan 101d09eeb3 Typo in event log 2019-09-16 13:01:35 -07:00
Johannes Zellner b602a9d15d Handle location form submit errors for (sub)domains 2019-09-16 19:58:15 +02:00
Girish Ramakrishnan 00f949f156 Add overwriteDns arg to install & clone
this is useful in e2e
2019-09-16 09:31:34 -07:00
Girish Ramakrishnan adbe46d369 print all the domains being registered 2019-09-16 09:22:43 -07:00
Johannes Zellner bb0ab03ad9 Improve the configure overlay button 2019-09-16 14:24:17 +02:00
Johannes Zellner d674dcaeef Add location display in overview 2019-09-16 14:18:51 +02:00
Johannes Zellner a738ddb917 Add initial back to my apps link 2019-09-16 14:15:38 +02:00
Johannes Zellner 935c92b507 Make app configure sections a separate view 2019-09-16 14:03:13 +02:00
Girish Ramakrishnan 3198926cd6 return null for default dataDir 2019-09-15 22:06:03 -07:00
Girish Ramakrishnan 957a6a20fe mail: fix sieve + mail relay 2019-09-13 17:01:36 -07:00
Girish Ramakrishnan 94f75bb0d7 Update mail container for queue rework 2019-09-13 14:39:48 -07:00
Girish Ramakrishnan 0f442755e5 mail: add SRS support for mail forwarding
Fixes #637
2019-09-13 10:22:49 -07:00
Johannes Zellner 10d1a2d8e4 Even further cleanup of dead code 2019-09-13 19:06:50 +02:00
Johannes Zellner cf6d64646a remove more dead code 2019-09-13 17:19:53 +02:00
Johannes Zellner c570e8b6fe Move app clone into app view 2019-09-13 17:18:37 +02:00
Johannes Zellner 849b9e0c80 Remove dead code 2019-09-13 17:10:12 +02:00
Johannes Zellner 8f8aa31304 Add restore and backup logic to app view 2019-09-13 17:08:50 +02:00
Johannes Zellner a1fe79c876 Also remove the app info dialog code from apps grid 2019-09-13 16:07:55 +02:00
Johannes Zellner 7c9654a541 Remove app task cancel code in apps grid 2019-09-13 15:54:27 +02:00
Johannes Zellner a86df7cdbf aRemove unused requires 2019-09-13 15:51:36 +02:00
Johannes Zellner 3d5cdd659b Remove all configure bits from the app grid page 2019-09-13 11:29:19 +02:00
Johannes Zellner 7a2a5d3846 Redirect back to app grid if app does not exist 2019-09-13 11:20:16 +02:00
Johannes Zellner 62fb0acb3c Move uninstall confirm dialog to app page 2019-09-13 11:18:43 +02:00
Johannes Zellner c4dfe8a723 Fixup form submission state for memory limit and robots 2019-09-13 11:12:11 +02:00
Johannes Zellner 4af4df9288 Only enable submit button if memory limit is changed 2019-09-13 11:06:13 +02:00
Johannes Zellner 25b0e18ceb Do not make the app task overlay that busy 2019-09-13 11:02:13 +02:00
Johannes Zellner c4aec8dfa6 Do not show app postinstall info in app view 2019-09-13 10:57:34 +02:00
Johannes Zellner 4056a3da43 Add debug section to app page 2019-09-13 10:34:12 +02:00
Girish Ramakrishnan cd2e782d48 Make mail tests work 2019-09-12 13:59:31 -07:00
Girish Ramakrishnan e97606ca87 Remove internal sysadmin server
this is now unused
2019-09-12 13:33:01 -07:00
Johannes Zellner 2027f8052b Improve app overview and add restart action 2019-09-12 17:42:33 +02:00
Johannes Zellner 96bb293c1f Improve app location settings 2019-09-12 17:08:45 +02:00
Johannes Zellner fd73b28d66 Improve app display configuration 2019-09-12 16:28:21 +02:00
Johannes Zellner aafa698776 Add initial app configure jump links 2019-09-12 15:59:40 +02:00
Johannes Zellner a99d31535c Always show configure icon in app grid for now 2019-09-12 14:40:16 +02:00
Johannes Zellner fda8791d5a app postprocess is already run in getApp 2019-09-12 12:18:10 +02:00
Girish Ramakrishnan 00ada80230 Add mail container changes 2019-09-11 15:03:57 -07:00
Girish Ramakrishnan 9e2ac31a08 Make mail list members a textarea
Also, fix the error handling
2019-09-11 14:40:57 -07:00
Girish Ramakrishnan 34db98c489 validate email in addList 2019-09-11 14:36:10 -07:00
Girish Ramakrishnan 110695355c Make mailing list members fully qualified
Part of #637
2019-09-11 12:51:57 -07:00
Johannes Zellner 758b32a61c Add initial task popup for apptasks 2019-09-11 21:24:45 +02:00
Johannes Zellner 62b392e555 Do not throw error if app is null in state label filter 2019-09-11 21:24:45 +02:00
Johannes Zellner a4c99fd361 Move all app configure tasks to separate view 2019-09-11 21:24:45 +02:00
Girish Ramakrishnan 021fb4bb94 Add skysilk provider 2019-09-11 09:14:04 -07:00
Girish Ramakrishnan dea033e4b0 Fix comment 2019-09-10 15:43:16 -07:00
Girish Ramakrishnan 7dfe40739e Remove apps.getAppConfig 2019-09-10 15:41:35 -07:00
Girish Ramakrishnan 9f0d1b515c Add param to overwrite DNS 2019-09-10 15:41:32 -07:00
Girish Ramakrishnan 2691d46d50 migrate: only pass the old data dir 2019-09-10 15:15:20 -07:00
Girish Ramakrishnan 8823656d70 add new installationStates 2019-09-10 14:30:44 -07:00
Girish Ramakrishnan 78c8f1de71 Add specific installation states to help out UI 2019-09-10 14:25:12 -07:00
Girish Ramakrishnan d27ee4bfbc More changes 2019-09-10 14:20:16 -07:00
Girish Ramakrishnan b82f5da112 Fixup event log for app configure 2019-09-10 14:18:44 -07:00
Girish Ramakrishnan cc5daa428d Fix location change event log 2019-09-10 13:57:58 -07:00
Girish Ramakrishnan 3e2189aeed Remove obsolete configure route 2019-09-09 22:08:08 -07:00
Girish Ramakrishnan 79f9963792 Add robotsTxt tests 2019-09-09 21:52:01 -07:00
Girish Ramakrishnan 6f53723169 test data dir migration 2019-09-09 21:25:39 -07:00
Girish Ramakrishnan d8cb100fc0 Add mailbox test 2019-09-09 16:34:48 -07:00
Girish Ramakrishnan 5f9b2f1159 Add env and debug mode tests 2019-09-09 15:46:29 -07:00
Girish Ramakrishnan 801ca7eda1 Break down the configure route 2019-09-09 14:35:52 -07:00
Girish Ramakrishnan 729f51b779 Make email a separate tab
This allows us to add some additional info that the app is pre-configured
to send email via the relay
2019-09-08 12:52:34 -07:00
Girish Ramakrishnan 1c1171e8a7 Add help link for relay 2019-09-08 12:23:27 -07:00
Johannes Zellner 44df319ff6 Do not show error page in notification on proxy upstream errors
This handles box being down and nginx delivers error page.
We do not want to show that in the notification, but other box crash
errors should be shown, they need to be fixed
2019-09-07 09:40:03 +02:00
Johannes Zellner 84dec337f0 Prevent angular errors when there is no appError.app set yet 2019-09-07 09:24:45 +02:00
Girish Ramakrishnan 2e60a9d43c init creatingBackup variable 2019-09-06 15:29:59 -07:00
Girish Ramakrishnan 4474766526 Hide when backup is active 2019-09-06 15:27:03 -07:00
Girish Ramakrishnan 45a2d3745c Fix app eventlog 2019-09-06 14:47:44 -07:00
Girish Ramakrishnan ddc1d8117d from -> using 2019-09-06 14:39:39 -07:00
Girish Ramakrishnan 551fe4d846 Use BoxError everywhere in apptask 2019-09-06 11:33:24 -07:00
Girish Ramakrishnan 791981c2f2 trim the provider 2019-09-06 10:24:19 -07:00
Girish Ramakrishnan a18a620847 Add BoxError.toPlainObject 2019-09-05 21:11:38 -07:00
Girish Ramakrishnan 609bae4f1a Use reason code 2019-09-05 19:23:58 -07:00
Girish Ramakrishnan 99e63ffc3f Use BoxError for apptask errors 2019-09-05 18:13:53 -07:00
Girish Ramakrishnan ff16a4334f Move showError into appError scope 2019-09-05 17:50:10 -07:00
Johannes Zellner 739e308c0e Make offline banner a link to the troubleshooting page 2019-09-06 00:14:05 +02:00
Johannes Zellner 6b29f57e1d Give useful information when box crashes or a request is otherwise terminated 2019-09-06 00:01:41 +02:00
Johannes Zellner 21981829fd Make Client.error() persistent and allow to pass an action 2019-09-06 00:01:41 +02:00
Girish Ramakrishnan e10a6d9de5 Bump graphite for buffer size fix 2019-09-05 14:33:32 -07:00
Girish Ramakrishnan 147f16571a Handle error in graphs code 2019-09-05 14:30:21 -07:00
Johannes Zellner b6e00a3107 Do not redirect to error.html if the angular main application fails to init
We now only show the offline banner and retry the application init until
box comes back up
2019-09-05 22:23:28 +02:00
Johannes Zellner 8b8b137cad Fix rest api wrapper usage 2019-09-05 22:23:28 +02:00
Girish Ramakrishnan 1ba1286df0 cloudron -> server 2019-09-05 12:28:04 -07:00
Girish Ramakrishnan 0417a82f83 Show error if graph loading fails 2019-09-05 12:23:53 -07:00
Girish Ramakrishnan bd1fbc4a05 typo 2019-09-05 11:42:32 -07:00
Girish Ramakrishnan 4cc01a2152 Move optional field to the end 2019-09-05 11:38:55 -07:00
Girish Ramakrishnan c7d434a091 Show backup progress inline 2019-09-05 11:30:27 -07:00
Girish Ramakrishnan 0843f78ec8 Add tasks.setCompleted
this lets us easily grep the code on where the task is completed
2019-09-05 11:29:48 -07:00
Girish Ramakrishnan 9769fbfcf2 Better message 2019-09-05 11:22:29 -07:00
Girish Ramakrishnan 3e1e704a7f Bring back app progress message 2019-09-05 10:05:01 -07:00
Girish Ramakrishnan 7e73197eb9 Trigger re-configure of apps for collectd config 2019-09-05 09:24:37 -07:00
Girish Ramakrishnan 12a9dcaa76 Better blocking update text 2019-09-04 21:10:34 -07:00
Girish Ramakrishnan fc2dd148c5 The tooltip is useful to track progress 2019-09-04 21:10:34 -07:00
Girish Ramakrishnan e3964fd710 Fix crash in setUpdateSuccess 2019-09-04 16:11:59 -07:00
Johannes Zellner ede6f36913 ng-cloak the offline bannder 2019-09-04 22:09:10 +02:00
Girish Ramakrishnan f85143fb7b Add links to docs in user dialog for disable and admin 2019-09-04 11:06:49 -07:00
Girish Ramakrishnan bbf3043fc3 graphs: add label to app tool tips 2019-09-04 09:20:05 -07:00
Girish Ramakrishnan e66961b814 merge registerSubdomains and registerAlternateDomains
also, merge unregisterSubdomain and unregisterAlternateDomains
also, fix crash where app.oldConfig is used
2019-09-03 19:55:41 -07:00
Girish Ramakrishnan 4176e5a98e Add note in schema 2019-09-03 19:04:12 -07:00
Girish Ramakrishnan 45cf8a62d1 remove obsolete comment 2019-09-03 18:52:37 -07:00
Girish Ramakrishnan b1380819ba debug taskId 2019-09-03 16:06:28 -07:00
Girish Ramakrishnan 57fa457596 Typo in error handling 2019-09-03 15:55:57 -07:00
Girish Ramakrishnan bbd73d361a Fixup error handling in apps view 2019-09-03 15:18:05 -07:00
Girish Ramakrishnan de1e218ce9 Return BAD_FIELD if dataDir conflicts 2019-09-03 15:17:48 -07:00
Girish Ramakrishnan e117ee2bef Cleanup app error codes
1. The error classes (like AppsError) now take a 3rd argument details.
We can attach anything in this 3rd argument and this gets sent in the
REST response as well.

2. The HttpError class is now HttpError(statusCode, errorOrMessage). If
it's an error object, it will take the message and other things which
were attached above from it and send them across. Previously, we used to
mark this case an internal error all the time.

3. AppsError only has generic codes now. The UI code then simply checks
for additional information that we attached to show errors. For example,
BAD_FIELD will have a field: 'xx' indicating which field is at fault.
ALREADY_EXISTS has information on which domain or port caused a problem.
The advantage here is we can drop all these error codes that are
specific to each model code.

4. Maybe some day, we can remove all these error classes and have only
one generic class. AppsError right now is pretty generic already. We can
use that error code everywhere... No need to translate errors also
everywhere.

5. Finally, in the router code, I have this function toHttpError (in
apps.js) which is also so much cleaner than what we have now. We keep
writing the same stuff over and over.
2019-09-03 10:39:02 -07:00
Girish Ramakrishnan 7d44c87aff Use error codes and fields 2019-09-02 17:28:40 -07:00
Girish Ramakrishnan a9e101d9f4 Add note on why it is BAD_STATE 2019-09-02 13:55:43 -07:00
Girish Ramakrishnan 7e81041b87 Use reason code for better error handling 2019-09-02 13:18:19 -07:00
Girish Ramakrishnan a2f8203a42 Add location conflict error code 2019-09-02 12:42:28 -07:00
Girish Ramakrishnan b9ee127775 Send detail in apps error 2019-09-02 12:41:32 -07:00
Girish Ramakrishnan 6668bb3e8a Handle BAD_STATE as well 2019-09-02 12:17:48 -07:00
Girish Ramakrishnan 5fd129e509 send reason code as part of details 2019-09-01 21:22:46 -07:00
Girish Ramakrishnan d59c1f53b9 apps: add detail to http error messages 2019-09-01 18:35:06 -07:00
Girish Ramakrishnan d2f38c1abc Remove unused error code 2019-09-01 17:39:07 -07:00
Girish Ramakrishnan c0a1db6941 Send details as part of AppsError
the last mile module has been updated to pipe through additional properties.
2019-09-01 13:42:25 -07:00
Girish Ramakrishnan fc10b4a79b Update lastmile 2019-09-01 13:34:40 -07:00
Girish Ramakrishnan 9da2117e99 Re-enable configure/restore test 2019-08-30 16:12:35 -07:00
Girish Ramakrishnan 7e030b149b More changes 2019-08-30 15:51:50 -07:00
Girish Ramakrishnan bd23abd265 tasks: make error a json
also, handle case where we never got to handle task exit cleanly
2019-08-30 14:49:45 -07:00
Girish Ramakrishnan e30698459b Use data.success before grabbing the error 2019-08-30 14:24:59 -07:00
Girish Ramakrishnan dd0fb8292c Move state enums to the model code 2019-08-30 13:21:51 -07:00
Girish Ramakrishnan b4cbf63519 Remove installationState contraint when settings health 2019-08-30 12:57:59 -07:00
Girish Ramakrishnan 4fd04fa349 Add proper error codes 2019-08-30 12:42:38 -07:00
Johannes Zellner 42399469a7 Prevent non-admins from showing the repair modal 2019-08-30 21:24:00 +02:00
Johannes Zellner 8ccc7bb734 Remove wrench and add action description on error 2019-08-30 21:21:44 +02:00
Girish Ramakrishnan 38a7c222a8 app.error is now an object 2019-08-30 11:38:31 -07:00
Girish Ramakrishnan c22cdb8d81 Return error object in the API 2019-08-30 11:34:04 -07:00
Johannes Zellner eb963b2eb4 Add externalldap pagination 2019-08-30 20:26:09 +02:00
Girish Ramakrishnan 7d299908c9 Fix tests 2019-08-30 10:49:43 -07:00
Girish Ramakrishnan 2585282f86 errorMessage -> errorJson 2019-08-30 10:02:24 -07:00
Johannes Zellner 9ea21606e5 Only show external ldap settings when ?ldap query is passed for now 2019-08-30 19:01:56 +02:00
Johannes Zellner c809119d57 Ensure hand cursor is correctly shown also in error states 2019-08-30 18:15:34 +02:00
Johannes Zellner b8ca009e69 Revert "Always show the hand cursor in app grid items"
This reverts commit 9df90e4edc.
2019-08-30 17:20:21 +02:00
Johannes Zellner 1e37d7da7d Refresh the user lising after ldap sync 2019-08-30 16:56:01 +02:00
Johannes Zellner 9df90e4edc Always show the hand cursor in app grid items 2019-08-30 16:51:50 +02:00
Johannes Zellner 4576e93deb Hide user account actions for external ldap users 2019-08-30 13:36:52 +02:00
Johannes Zellner f25d5b3304 Deliver the user account source in the profile api 2019-08-30 13:36:37 +02:00
Johannes Zellner ea5e0b28da Hide certain user profile actions for external ldap users 2019-08-30 13:32:20 +02:00
Johannes Zellner 6e878faa8b Also sync fallbackEmail from ldap 2019-08-30 13:10:49 +02:00
Johannes Zellner 19c8a01969 Add more description how ldap sync works 2019-08-30 13:09:44 +02:00
Johannes Zellner ebab88e7aa Rework the external ldap ui to follow usual modal dialog pattern 2019-08-30 12:40:23 +02:00
Johannes Zellner b4248acd9a There is no ng-enabled, only ng-disabled 2019-08-30 12:34:31 +02:00
Johannes Zellner 15a6cbe62b Make sure all password change input fields use the same validation pattern 2019-08-30 12:14:32 +02:00
Johannes Zellner c303174f0b Usernames can be even 1 character long 2019-08-30 11:02:07 +02:00
Johannes Zellner 91cf6465df Give external ldap sync task feedback 2019-08-30 10:20:08 +02:00
Johannes Zellner 426d2aab09 Add ability to trigger external ldap syncer task 2019-08-30 10:20:08 +02:00
Johannes Zellner 8c44e558a8 Add external LDAP configuration 2019-08-30 10:20:08 +02:00
Johannes Zellner 76b0b214ec Do not sync non-ldap users from ldap if usernames match
We might want to make that option in the future depending on use-cases
2019-08-30 10:20:04 +02:00
Johannes Zellner f5c643c960 Add some debugging logs when users are created or updated 2019-08-30 10:20:04 +02:00
Johannes Zellner ca8e0613fb Skip notifications for ldap syncer events 2019-08-30 10:20:04 +02:00
Johannes Zellner 0c9334d0d2 Ensure we wait for all user sync db actions to finish 2019-08-30 10:20:04 +02:00
Johannes Zellner 712dc97e9b Move the basic ldap argument validation 2019-08-30 10:20:04 +02:00
Johannes Zellner 4df48c97ec Ignore the bindDn user in the syncer 2019-08-30 10:20:04 +02:00
Johannes Zellner fe3ea53cda Ldap usually uses cn as displayName 2019-08-30 10:20:04 +02:00
Johannes Zellner d385c80882 Use external ldap bind for users from ldap source 2019-08-30 10:20:04 +02:00
Johannes Zellner b823213c94 Create and update users from external ldap 2019-08-30 10:20:04 +02:00
Johannes Zellner 4b86311ab9 Add user source property to schema 2019-08-30 10:20:04 +02:00
Johannes Zellner b9efa8f445 Use tasks api for external ldap syncer 2019-08-30 10:20:04 +02:00
Johannes Zellner f8db12346d Perform some basic static input validation for external ldap 2019-08-30 10:20:04 +02:00
Johannes Zellner 4d3948f81f Improve external ldap error reporting 2019-08-30 10:20:04 +02:00
Johannes Zellner 5431d50206 Also check errors when no bindDn is provided 2019-08-30 10:20:04 +02:00
Johannes Zellner 6db078c26a Handle externalldap errors correctly in settings route 2019-08-30 10:20:04 +02:00
Johannes Zellner f61e9c7f27 Catch basic protocol errors 2019-08-30 10:20:04 +02:00
Johannes Zellner 567d92ce00 Add external ldap enabled boolean flag 2019-08-30 10:20:04 +02:00
Johannes Zellner 7a6d26c5da Add settings route handler for external ldap configs 2019-08-30 10:20:04 +02:00
Johannes Zellner 046ac85177 Add initial externalldap code to validate ldap configs 2019-08-30 10:20:04 +02:00
Girish Ramakrishnan f0fd088247 Pick values from updateConfig 2019-08-29 20:50:45 -07:00
Girish Ramakrishnan 6a08e08d7c Show errorMessage 2019-08-29 18:59:13 -07:00
Girish Ramakrishnan 5ec0d1e691 Add to changes 2019-08-29 15:10:55 -07:00
Girish Ramakrishnan 2796ad12fe Show app cancel busy indicator 2019-08-29 14:51:21 -07:00
Girish Ramakrishnan 9391a934c3 Do not update on uninstall 2019-08-29 14:38:42 -07:00
Girish Ramakrishnan 45d40297bf refresh app cache on cancel 2019-08-29 14:35:39 -07:00
Girish Ramakrishnan 57ac37c210 Fix configure/repair button text 2019-08-29 14:34:04 -07:00
Girish Ramakrishnan 8eee0b809c Add cancel action for active app tasks 2019-08-29 14:30:25 -07:00
Girish Ramakrishnan bb62e6a318 clear taskId in the parent process 2019-08-29 13:43:45 -07:00
Girish Ramakrishnan 0da6539c48 Add progressCallback to run commands 2019-08-29 13:41:11 -07:00
Girish Ramakrishnan 9cf833dab2 Use taskId instead of states to check bad state
a) this is because, we have install state and run state.
b) we have to put taskId as part of the transaction to prevent race
2019-08-29 13:15:40 -07:00
Girish Ramakrishnan 5387054000 Refactor update functions 2019-08-29 11:33:22 -07:00
Girish Ramakrishnan e08f072d95 Refactor uninstall functions 2019-08-29 11:30:37 -07:00
Girish Ramakrishnan 44db2ca02a lint 2019-08-29 11:18:02 -07:00
Girish Ramakrishnan ed57260fcf add note on why it is a state 2019-08-29 11:07:19 -07:00
Girish Ramakrishnan dc8564d18e Remove force update state 2019-08-29 10:59:15 -07:00
Girish Ramakrishnan c98f625c4c Make force update as task arg 2019-08-29 10:59:05 -07:00
Girish Ramakrishnan f3008064e4 Fix installation states
App operations can only be done in 'installed' or 'error' state.
If some other operation is in progress, you have to cancel it first.

This guarantees that the old app command got killed.
2019-08-29 10:14:23 -07:00
Girish Ramakrishnan 1faee00764 Better progress text when waiting for other tasks
Fixes #630
2019-08-28 22:13:50 -07:00
Girish Ramakrishnan a40505e2ee Remove pause flag, we already have platform lock 2019-08-28 22:13:50 -07:00
Girish Ramakrishnan 3b8bc9fdab Rename pending to queued 2019-08-28 22:13:28 -07:00
Girish Ramakrishnan c5d65fa030 typo 2019-08-28 22:12:24 -07:00
Girish Ramakrishnan 484202b4c6 better variable name 2019-08-28 21:31:42 -07:00
Girish Ramakrishnan 0252b08c8f Remove app task crash action 2019-08-28 16:03:17 -07:00
Girish Ramakrishnan 8f29b7a91f Use task api to get app progress 2019-08-28 16:03:17 -07:00
Girish Ramakrishnan 6a7fc17c60 Make restore/configure use scheduleTask 2019-08-28 15:36:50 -07:00
Girish Ramakrishnan 05d3897ae2 Make apps test work again 2019-08-28 15:30:23 -07:00
Girish Ramakrishnan 9f1210202a port taskmanager to use tasks 2019-08-28 15:17:53 -07:00
Girish Ramakrishnan be6b172d6f Remove app task eventlog 2019-08-28 13:24:05 -07:00
Girish Ramakrishnan fef9e0a5c1 Handle app task crashes 2019-08-28 13:19:47 -07:00
Girish Ramakrishnan b84b033bf3 typo 2019-08-28 12:51:00 -07:00
Girish Ramakrishnan b30ff1f55a rework task API to be two-phase
this lets us avoid this EE based API. we now add and then start
explicitly.
2019-08-28 10:39:40 -07:00
Girish Ramakrishnan c6be0b290b updateConfig is no more 2019-08-27 22:03:43 -07:00
Girish Ramakrishnan 33cfd7a629 Add 'success' virtual field to the tasks 2019-08-27 21:36:52 -07:00
Girish Ramakrishnan 5952a5c69d Send taskId in the response 2019-08-27 21:35:40 -07:00
Girish Ramakrishnan 20de563925 rename installationProgress to errorMessage 2019-08-27 20:08:35 -07:00
Girish Ramakrishnan 7da80b4c62 Ensure log directory 2019-08-27 16:36:19 -07:00
Girish Ramakrishnan 15d765be6d Comment out couple of tests 2019-08-27 16:36:19 -07:00
Girish Ramakrishnan bfe2f116a7 Make restoreConfigJson, oldConfigJson, updateConfigJson as task args 2019-08-27 16:36:15 -07:00
Girish Ramakrishnan f535b3de2f Add logFile option to startTask 2019-08-27 15:26:26 -07:00
Girish Ramakrishnan e560c18b57 apptask is not a separate process anymore 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan aecb99b6a3 Use task API in run commands 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan 7da17f8190 Use task API in app backup 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan 1964270a4f Use task API in app update 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan f45b61d95c Use task API for app restore 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan ff11c38169 Use task API for app clone 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan 3e67067431 Use task API for app uninstall 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan 824f00d1e8 Use task API for app configure 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan 96d19f59a4 Use task API for app install 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan 42c6fe50d2 Make progressCallback take an optional callback 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan 9242f7095a Migrate apptask to use tasks framework 2019-08-27 12:31:59 -07:00
Girish Ramakrishnan 99c9fbc38f add taskId to appdb 2019-08-27 12:31:55 -07:00
Johannes Zellner 19e1bbdc1c Add missing graphite log viewer entry 2019-08-27 14:54:39 +02:00
Girish Ramakrishnan 0d31207ad7 add taskId to tasks table 2019-08-26 14:27:29 -07:00
Girish Ramakrishnan 8af7dbc35a group -> list 2019-08-23 16:36:19 -07:00
Johannes Zellner d0a373cb15 Refresh dns records for dynamic dns setting every hour
Often home IPs change at the full hour, so we give it 5min to settle
2019-08-23 16:20:26 +02:00
Johannes Zellner cd2baf105f Fix next color helper 2019-08-22 18:38:32 +02:00
Johannes Zellner 3366acde58 prettyDiskSize should return something descriptive instead of NaN
undefined
2019-08-22 18:37:32 +02:00
Johannes Zellner 775f6eff0b We are in the browser, avoid const 2019-08-22 18:33:37 +02:00
Johannes Zellner 3dc87bbca8 Allow embedding pages from same origin 2019-08-22 11:37:54 +02:00
Girish Ramakrishnan a55c399585 cloudron-support: Use the PROVIDER file 2019-08-21 21:23:22 -07:00
Girish Ramakrishnan f74aa24dd2 cloudron-setup: make it work for old installs
need this for the auto-update test
2019-08-21 21:18:08 -07:00
Girish Ramakrishnan 52d501dae8 use app label if available 2019-08-21 14:59:55 -07:00
Girish Ramakrishnan eb24baf2c1 Better prettyDiskDize 2019-08-21 14:57:59 -07:00
Girish Ramakrishnan 1aa7eb4478 Collect and aggregate du information twice a day 2019-08-21 13:45:52 -07:00
Girish Ramakrishnan 0c7002ba59 settings.adminOrigin has to be loaded after setAdmin
the dangers of caching
2019-08-21 13:26:15 -07:00
Johannes Zellner 7fd0ef51b5 Use more consistent theme colors 2019-08-21 20:46:26 +02:00
Johannes Zellner 173acc5226 Show disk content separately inside the usage graph 2019-08-21 20:27:43 +02:00
Girish Ramakrishnan fd6dd1ea18 Add timestamp to the logs 2019-08-21 10:16:57 -07:00
Johannes Zellner 6643b825ee Fixup the disk usage gathering 2019-08-21 12:08:19 +02:00
Girish Ramakrishnan aa74d5cd82 Add a note 2019-08-20 19:47:24 -07:00
Girish Ramakrishnan a56f20584f add note 2019-08-20 19:38:53 -07:00
Girish Ramakrishnan 22664bea62 Add options to graphs 2019-08-20 19:38:32 -07:00
Girish Ramakrishnan 8fc10a0bdd Add note 2019-08-20 15:26:00 -07:00
Girish Ramakrishnan 809ed0f0dc clear db to stop the scheduler 2019-08-20 13:42:03 -07:00
Girish Ramakrishnan b8a4e1c4a3 Use docker for apps-test 2019-08-20 13:34:18 -07:00
Girish Ramakrishnan d9e45f732b Fix error message 2019-08-20 13:22:43 -07:00
Girish Ramakrishnan ca025b36f7 Define DockerError.EXTERNAL_ERROR 2019-08-20 13:11:06 -07:00
Girish Ramakrishnan bfb719d35e Remove use of dockerProxy 2019-08-20 11:50:54 -07:00
Girish Ramakrishnan 2a1b61107f Make the ldap test work 2019-08-20 11:45:00 -07:00
Johannes Zellner f80bf65076 Fetch du- data for disk contents 2019-08-20 13:00:45 +02:00
Johannes Zellner 28634c59c8 Get the correct df data from graphite 2019-08-20 12:36:06 +02:00
Johannes Zellner 993377a40b Show email and docker data location in graphs 2019-08-20 12:23:07 +02:00
Johannes Zellner 969cee7c90 Rebuilding docker container takes a long time, so callback early
Otherwise the service restart request will just time out in the
dashboard
2019-08-20 12:12:24 +02:00
Johannes Zellner 7a3f579d3e Do not crash if a service without active docker container needs restart 2019-08-20 12:06:49 +02:00
Johannes Zellner 288d5efa88 Return DockerError instead of generic Error 2019-08-20 12:06:22 +02:00
Johannes Zellner 7be821963c Ensure we report stopped status for addons without a running docker container 2019-08-20 11:27:35 +02:00
Girish Ramakrishnan a236f8992a graphite: Fixup healthcheck url 2019-08-19 22:27:53 -07:00
Girish Ramakrishnan a5c2257f39 Update changelog 2019-08-19 19:10:30 -07:00
Girish Ramakrishnan 9d3b4ba816 store docker df output as well 2019-08-19 16:15:31 -07:00
Girish Ramakrishnan 43bf0767f1 remove docker proxy from tests
this is too complicated and also makes it hard to keep up with upstream API
2019-08-19 14:35:23 -07:00
Girish Ramakrishnan b301e5b151 Add dockerDataDisk to disks response 2019-08-19 14:14:13 -07:00
Girish Ramakrishnan 9633733bc4 Clarify that this is ubuntu related 2019-08-19 13:56:25 -07:00
Girish Ramakrishnan 2b484c0382 collect maildata size separately 2019-08-19 13:23:31 -07:00
Johannes Zellner 6b4893b854 Rework disk usage graphs and give more information what is installed where 2019-08-19 16:50:03 +02:00
Johannes Zellner 09f7c35dac Show red badge and subscription expired page depending on the subscriptipn status 2019-08-19 12:11:11 +02:00
Johannes Zellner f40ab4e2d5 Use git+https for cloudron-io/df 2019-08-19 09:19:06 +02:00
Johannes Zellner 0fc4169b0b correctly display premium app requirement page 2019-08-19 09:13:37 +02:00
Girish Ramakrishnan c0a27380e9 Add to changes 2019-08-18 21:59:20 -07:00
Girish Ramakrishnan 0d7a3f43c4 Collect du information 2019-08-18 21:52:41 -07:00
Girish Ramakrishnan 8195e439f3 Return all disks
We now return the disk information per app as well
2019-08-16 10:29:56 -07:00
Johannes Zellner 78746be0f5 Distinguish between too many apps and premium apps 2019-08-14 16:38:02 +02:00
Johannes Zellner 2287a550d7 Move subscription setup outlink button inside iframe for better label control 2019-08-14 15:48:10 +02:00
Johannes Zellner b5edbf716c Add interox provider option 2019-08-14 14:47:08 +02:00
Johannes Zellner 466265fde1 Allow iframe embedding of cloudron.io pages 2019-08-14 14:44:12 +02:00
Girish Ramakrishnan 40033e09cd Check disk space before create app/box backups
Fixes #642
2019-08-13 10:55:02 -07:00
Johannes Zellner d6eb6d3318 Add small indicator if no users have been found 2019-08-13 15:30:40 +02:00
Johannes Zellner 573663412c Add more fuzzy user search
Fixes #646
2019-08-13 15:23:26 +02:00
Johannes Zellner 17599417f7 WIP 2019-08-13 15:16:17 +02:00
Girish Ramakrishnan 0ece6d8b0e Add dataDir to schema 2019-08-12 22:16:45 -07:00
Girish Ramakrishnan e0ac0393fe typo 2019-08-12 21:47:22 -07:00
Girish Ramakrishnan 6d38b3255c Check available disk space before update
Part of #642
2019-08-12 21:09:22 -07:00
Girish Ramakrishnan 477ff424d6 Check if we have enough disk space for docker
Part of #642
2019-08-12 20:47:53 -07:00
Girish Ramakrishnan a843104348 sftp: typo 2019-08-12 11:31:59 -07:00
Girish Ramakrishnan 0f4bc0981a graphs: fix render forwarding 2019-08-12 11:01:12 -07:00
Girish Ramakrishnan 07f6351465 Make graphite dashboard appear again 2019-08-11 22:45:11 -07:00
Girish Ramakrishnan 1b26e86365 Fix test 2019-08-10 09:37:42 -07:00
Girish Ramakrishnan db2d36eaa1 Show ban icon for inactive users 2019-08-08 08:30:29 -07:00
Girish Ramakrishnan 151d20341e Add checkbox for user active 2019-08-08 08:25:59 -07:00
Girish Ramakrishnan 94b4bf94c0 Merge active flag into update route 2019-08-08 08:17:08 -07:00
Girish Ramakrishnan d5de05b633 Send user active flag 2019-08-08 07:19:50 -07:00
Girish Ramakrishnan 0ab6cad048 Add user enable/disable flag 2019-08-08 06:31:46 -07:00
Girish Ramakrishnan 9833ad548b Better progress message 2019-08-07 06:23:28 -07:00
Girish Ramakrishnan aa1ba3b226 Make apps-test pass 2019-08-06 10:27:19 -07:00
Girish Ramakrishnan 3774d4de28 Use API for pullImage
This allows to get proper error code

This mostly reverts commit 734286ba2e.
2019-08-06 09:46:09 -07:00
Johannes Zellner 2c51bc17f1 Reduce iframe size 2019-08-06 14:16:35 +02:00
Johannes Zellner 0448ad49ed Allow our appstore origins explicitly 2019-08-06 10:24:35 +02:00
Johannes Zellner 2d4129f8f7 Fix typo 2019-08-06 10:22:00 +02:00
Johannes Zellner c42aa7c806 Remove caas case in setup screen 2019-08-06 10:03:12 +02:00
Johannes Zellner debeb8dfd8 Ignore setup page info button in tab focus 2019-08-06 09:59:06 +02:00
Girish Ramakrishnan e4961726bc Try to make apps-test work 2019-08-05 16:16:56 -07:00
Johannes Zellner 2227e1dd4b Allow to specify the appstore subscription helper origins 2019-08-05 20:32:56 +02:00
Johannes Zellner 1d7e73c162 Fix indentation 2019-08-05 20:04:27 +02:00
Girish Ramakrishnan 77cf7d0da6 Bump test version 2019-08-05 06:39:16 -07:00
Girish Ramakrishnan a993e0b228 Add fullstop 2019-08-04 15:35:42 -07:00
Girish Ramakrishnan 43671a9fd6 Clear update task progress after update
Fixes #635
2019-08-04 10:21:42 -07:00
Girish Ramakrishnan 49cfd1e9b7 Add notification for box update
Fixes #634
2019-08-04 05:44:04 -07:00
Johannes Zellner 3f451856a0 adjust to appstore filename change 2019-08-04 11:38:09 +02:00
Johannes Zellner fdd0483c9f Allow localhost development iframe sources 2019-08-04 11:32:42 +02:00
Girish Ramakrishnan 58d4a4f54f quoting and fullstop 2019-08-03 10:36:38 -07:00
Girish Ramakrishnan c1a49a52e8 Remove the newline 2019-08-03 10:33:56 -07:00
Girish Ramakrishnan e4e328ba6a Make user event titles better 2019-08-03 10:17:07 -07:00
Girish Ramakrishnan d8394392c9 Fix tooltip 2019-08-03 09:43:30 -07:00
Girish Ramakrishnan fd6bc955ff Remove extra line 2019-08-03 09:41:16 -07:00
Girish Ramakrishnan eb7a037f94 comment out display raw json event 2019-08-03 09:37:29 -07:00
Girish Ramakrishnan 511a18e0ed Display app changelog and version
part of #634
2019-08-03 09:22:13 -07:00
Girish Ramakrishnan eb905aab86 Add SPF doc links
Fixes cloudron/box#636
2019-08-02 13:30:45 -07:00
Girish Ramakrishnan e29d224a92 Be a bit more specific 2019-07-31 15:45:25 -07:00
Girish Ramakrishnan bb48ffb01f Fixup UA for easier detection (other than IP) 2019-07-31 15:43:15 -07:00
Girish Ramakrishnan 55892097d7 Fix error message when clicking on unhealthy app
Fixes cloudron/box#643
2019-07-31 11:48:38 -07:00
Girish Ramakrishnan 6bfcda9fdc Send app object to message filters
this lets us access the state of an app
2019-07-31 11:40:18 -07:00
Girish Ramakrishnan 02dcbb9a52 Add some comments on the various labels 2019-07-31 11:38:28 -07:00
Johannes Zellner 0c6a6e4173 Show premium app required site from appstore 2019-07-31 08:09:43 +02:00
Johannes Zellner e044251df4 Show subscription setup page from appstore 2019-07-31 08:09:43 +02:00
Johannes Zellner 26d27a3f6a Allow iframes from *cloudron.io 2019-07-31 08:09:43 +02:00
Girish Ramakrishnan 31fd3411f7 Add to changes 2019-07-30 15:41:03 -07:00
Girish Ramakrishnan a737d2675e Fix logrotation rules
* explicitly specify the dirs that are getting rotated
* app log rules are now moved to logrotate.ejs
* we keep task logs for a week

Some testing notes:
* touch -d "10 days ago" foo
* logrotate /etc/logrotate.conf -v to test rotation. there is a state
file created in /var/lib/logrotate/status. If we have a 'daily' rule,
it will get processed only after a log line in status exists and it's atleast
1 day old timestamp.

https://github.com/logrotate/logrotate/blob/master/logrotate.c is quite
readable
2019-07-30 15:37:15 -07:00
Girish Ramakrishnan fd462659cd tmp cleaner: only remove files and not directories
some apps like rocket.chat create directories in tmp and removing those
directories causes problems (for example, uploading)
2019-07-30 14:06:04 -07:00
Girish Ramakrishnan c5b9fccedb Add wasabi to restore UI 2019-07-30 10:42:18 -07:00
Johannes Zellner cb10d0d465 Add time4vps provider 2019-07-29 20:54:41 +02:00
Girish Ramakrishnan 61f1c4884c Refactor logic so that settings.adminDomain is read in the closure 2019-07-27 19:21:49 -07:00
Girish Ramakrishnan 2cd00de6e3 initCache after every restore 2019-07-27 19:09:09 -07:00
Girish Ramakrishnan 0153e5212c Allow restore from IP 2019-07-26 22:43:59 -07:00
Girish Ramakrishnan d3c5d53eae silence mysql warning 2019-07-26 22:35:44 -07:00
Girish Ramakrishnan 6dfafae342 move the comment 2019-07-26 22:19:14 -07:00
Girish Ramakrishnan 2f861c3309 specify the database 2019-07-26 22:12:40 -07:00
Girish Ramakrishnan af388f0f16 IP based restore 2019-07-26 21:37:33 -07:00
Girish Ramakrishnan c36cc86c5f init cache in various out of process workers 2019-07-26 19:38:42 -07:00
Girish Ramakrishnan 02f195b25c typo 2019-07-26 15:02:03 -07:00
Girish Ramakrishnan 18623fd9b7 cloudron.conf can be removed post migration 2019-07-26 14:55:36 -07:00
Girish Ramakrishnan 9b74bb73aa config.js is dead, long live config.js
we use settings now
2019-07-26 14:51:51 -07:00
Girish Ramakrishnan ee9636b496 move use of TEST and CLOUDRON to constants 2019-07-26 10:13:20 -07:00
Girish Ramakrishnan 5c2cbd7840 Move config.baseDir to paths 2019-07-26 10:07:08 -07:00
Girish Ramakrishnan 7fbac6cc17 typo 2019-07-26 08:44:37 -07:00
Girish Ramakrishnan 9e7e9d66bf move provider into sysinfo
this is ideally "auto-detectable" runtime information
2019-07-26 07:33:22 -07:00
Girish Ramakrishnan 7fe66aa7fa Remove unused settings.get 2019-07-25 16:31:02 -07:00
Girish Ramakrishnan 2dda0efe83 Move config.database to db code itself 2019-07-25 16:12:42 -07:00
Girish Ramakrishnan 59620ca473 config.get is dead 2019-07-25 16:08:54 -07:00
Girish Ramakrishnan 12eae1eff2 Make port a constant 2019-07-25 16:08:54 -07:00
Girish Ramakrishnan b03bf87b7d remove unused function 2019-07-25 16:08:54 -07:00
Girish Ramakrishnan c32718b164 Make ldap and docker proxy port as constants 2019-07-25 16:08:54 -07:00
Girish Ramakrishnan a6ea12fedc Make internal smtp port a constant 2019-07-25 16:08:54 -07:00
Girish Ramakrishnan 2d260eb0d5 Make sysadminPort a constant 2019-07-25 16:08:51 -07:00
Girish Ramakrishnan d7dd069ae0 Use constants.version instead of config.version 2019-07-25 15:02:14 -07:00
Girish Ramakrishnan 6a77a58489 Move hasIPv6 into sysinfo 2019-07-25 14:35:08 -07:00
Girish Ramakrishnan c30ac5f927 Add setting key names 2019-07-25 14:35:04 -07:00
Girish Ramakrishnan 437f7ef890 Migrate cloudron.conf into db 2019-07-25 14:34:16 -07:00
Girish Ramakrishnan 1f7347e8de Make custom.yml as part of the backup 2019-07-25 10:28:42 -07:00
Girish Ramakrishnan 96f59d7cfe config: edition is long gone 2019-07-24 22:32:16 -07:00
Girish Ramakrishnan d55f65c7c9 Better error message 2019-07-24 22:11:22 -07:00
Girish Ramakrishnan 92835a5270 Show warning when sendmail is disabled for a domain 2019-07-24 22:11:05 -07:00
Girish Ramakrishnan 9a0d5b918f totp: set window to 2
see https://github.com/speakeasyjs/speakeasy#specifying-a-window-for-verifying-hotp-and-totp

A TOTP is incremented every step time-step seconds. By default, the time-step is
30 seconds. Window of 2 means, +- 2 steps.

Fixes #633
2019-07-23 14:45:54 -07:00
Girish Ramakrishnan 5f41c78305 Add wasabi 2019-07-22 16:57:01 -07:00
Girish Ramakrishnan 3553fbc7b6 Add wasabi storage backend 2019-07-22 16:44:56 -07:00
Girish Ramakrishnan 55d53f13d9 Improve error message 2019-07-18 10:28:37 -07:00
Johannes Zellner 1726b89dea Ensure large notification markdown payloads do not overflow the UI 2019-07-17 16:40:10 +02:00
Johannes Zellner 27369a650c Fix disk full docs link 2019-07-16 15:10:56 +02:00
Girish Ramakrishnan 913f0d5d97 Update changes file 2019-07-15 10:50:14 -07:00
Girish Ramakrishnan 2506e69cdc Add SparkPost as mail relay 2019-07-15 10:49:13 -07:00
Girish Ramakrishnan ada63ec697 Add app.adminEmail 2019-07-12 14:29:35 -07:00
Johannes Zellner 88bc30bbea Rework the restore/clone dialogs 2019-07-12 17:18:21 +02:00
Girish Ramakrishnan 2835d1bd87 We now have free trial 2019-07-11 11:18:48 -07:00
Girish Ramakrishnan 117f06e971 Fix issue where tar backups with files > 8GB was corrupt
Fixes #640
2019-07-10 14:58:54 -07:00
Girish Ramakrishnan e590896f01 appstore: handle 402 2019-07-08 09:58:50 -07:00
Johannes Zellner 9f03a9a6e2 Do first a patch release 2019-07-03 19:14:00 +02:00
Girish Ramakrishnan dfb0836446 Revert "Enable dataDir setting"
This reverts commit 9515a060ab.
2019-07-03 07:53:30 -07:00
Johannes Zellner ce406c7088 Add groupCount to backendSettings 2019-07-03 13:47:23 +02:00
Girish Ramakrishnan e7127df30d remove app ownerId
this is unused
2019-07-02 21:23:51 -07:00
Girish Ramakrishnan 88fdd1f562 Remove ownerId use 2019-07-02 20:22:06 -07:00
Girish Ramakrishnan 10e2817257 Add 4.2 changes 2019-07-02 19:24:49 -07:00
Girish Ramakrishnan ae07c7934e Fix login issue when admin is revoked
If this ex-admin user had installed an app, then we try to get app details
(since he is the owner) and we go into a loop
2019-07-02 19:02:39 -07:00
Girish Ramakrishnan 337a47c62b typo 2019-07-02 16:46:14 -07:00
Girish Ramakrishnan 14bdac20ef cloudron-support: add --admin-login 2019-07-02 16:37:46 -07:00
Girish Ramakrishnan 88e2b3f9aa Add userCount to backend settings 2019-07-01 23:26:43 -07:00
Girish Ramakrishnan 22d731f06d Fix LDAP not accessible via scheduler containers
Check the IP address against scheduler containers as well
2019-06-27 16:12:09 -07:00
Girish Ramakrishnan e3d288ef7d Add MONGODB_OPLOG_URL for apps that require oplog access
remove the replicaSet arg (it causes problems in tests but not in apps).
it causes some issues because of hostname not being set properly/docker network.
this only prevents the client from using replicaSet features which doesn't apply
to us since it is single instance.
2019-06-27 13:19:59 -07:00
Girish Ramakrishnan 455f597543 Add changes 2019-06-26 21:40:03 -07:00
Girish Ramakrishnan 8c9e626920 Remove twitter and chat link from the login footer 2019-06-26 21:39:07 -07:00
Girish Ramakrishnan 5a000c1ff4 Add MONGODB_REPLICA_SET for mongodb addon
This can be useful for constructing the ?replSet= part of the URI.
replicaSet is used by the client to discover the secondaries and fallback
automatically. if not provided, they just talk to primary.
2019-06-26 21:29:43 -07:00
Girish Ramakrishnan ddf634bfb2 o2 has stopped working 2019-06-26 18:40:07 -07:00
Girish Ramakrishnan 89d3b8cc6a Make hostname more explicit 2019-06-26 14:21:47 -07:00
Girish Ramakrishnan 49af6d09a2 CLOUDRON_APP_HOSTNAME should be the app id always
name is the container name which is "unique"
2019-06-26 14:21:43 -07:00
Girish Ramakrishnan e5b0cac284 Clarify comment 2019-06-26 14:13:26 -07:00
Girish Ramakrishnan 9515a060ab Enable dataDir setting 2019-06-25 10:49:39 -07:00
Girish Ramakrishnan 6f33900f85 Fix failing test 2019-06-21 15:05:28 -07:00
Girish Ramakrishnan 514823af7d More changes 2019-06-21 13:34:24 -07:00
Girish Ramakrishnan c550416c9d reset the app icon on show 2019-06-21 13:30:33 -07:00
Girish Ramakrishnan 65b058f563 More changes 2019-06-21 11:12:25 -07:00
Girish Ramakrishnan 712883373a scaleway-os: restore UI 2019-06-21 11:10:19 -07:00
Girish Ramakrishnan 50930ee609 exoscale: do not overwrite endpoint 2019-06-21 10:46:07 -07:00
Girish Ramakrishnan 78bffad99f exoscale: add CH-GVA-2 2019-06-21 10:44:24 -07:00
Girish Ramakrishnan 7c8560deff Ensure redis addon vars are replaced with manifest v2 2019-06-20 23:43:18 -07:00
Girish Ramakrishnan 6bbe2613b4 Return 412 for bad password 2019-06-20 16:44:53 -07:00
Girish Ramakrishnan 5771478e4b Use 412 for invalid token, otherwise user gets logged out 2019-06-20 16:37:16 -07:00
Girish Ramakrishnan e13030bc89 fontawesome location has changed 2019-06-20 16:27:27 -07:00
Girish Ramakrishnan 0a0ac93a55 Use pattern match instead for handling v1 to v2 upgrades 2019-06-20 11:59:02 -07:00
Girish Ramakrishnan 214fb50e74 Add 4.1.5 changes 2019-06-20 11:49:39 -07:00
Girish Ramakrishnan 959f8ee31e Ensure passwords are preserved with v2 manifest 2019-06-20 11:46:50 -07:00
Girish Ramakrishnan cb0d75be37 Add changes 2019-06-19 09:19:05 -07:00
Girish Ramakrishnan b3760a961d Prefix the env vars with CLOUDRON_ for manifest v2 2019-06-19 09:16:41 -07:00
Girish Ramakrishnan 813d92ce32 Show domain removal error
this got removed by mistake with the password edit
2019-06-18 11:38:30 -07:00
Girish Ramakrishnan 11353e9e3a DO DNS API break means this value must atleast be 30
(cherry picked from commit c0c5561aac)
2019-06-17 20:13:32 -07:00
Girish Ramakrishnan 8cd5c15c2b Fix mail auth with manifest v2 2019-06-17 11:13:59 -07:00
Girish Ramakrishnan b86b8b8ee1 4.1.4 changes
(cherry picked from commit 73a44d1fb2)
2019-06-16 17:59:18 -07:00
Girish Ramakrishnan c5f6e6b028 Prefix mysql url/database variables 2019-06-15 10:06:51 -07:00
Girish Ramakrishnan 592d8abc58 Roll back async package
something is broken, not sure what
2019-06-14 16:24:41 -07:00
Girish Ramakrishnan d93068fc62 Update package lock 2019-06-14 15:32:11 -07:00
Girish Ramakrishnan a864af52df Update packages 2019-06-14 15:31:13 -07:00
Girish Ramakrishnan b02570e679 Hide data dir UI again for this release 2019-06-13 15:14:25 -07:00
Girish Ramakrishnan b7d1979d0d Always show the DNS status section 2019-06-12 17:48:06 -07:00
Johannes Zellner 1eedd4b185 Send changelog for updated app notifications 2019-06-12 17:15:02 +02:00
Johannes Zellner 9d38edfe95 Update the emaildevelop test template data 2019-06-12 17:14:58 +02:00
Johannes Zellner 6e6846835a Do not create notification links with target blank
Most links are pointing the user within the dashboard
2019-06-12 16:15:55 +02:00
Johannes Zellner f895ebba73 Add some changes 2019-06-12 10:13:36 +02:00
Johannes Zellner d899935b56 Add Digitalocean Spaces Frankfurt region 2019-06-12 10:11:46 +02:00
Girish Ramakrishnan 511287b16e linter likes this better 2019-06-11 12:32:15 -07:00
Johannes Zellner 530e06ec66 Add changes 2019-06-11 20:33:56 +02:00
Johannes Zellner 9cab383b43 Namecom does not support @ for naked domain anymore 2019-06-11 20:33:56 +02:00
Girish Ramakrishnan 9785ab82ed Use cloudron as prefix instead of suffix 2019-06-11 09:39:45 -07:00
Johannes Zellner 9d237e7bd6 Fix sudo installation on scaleway 2019-06-11 13:30:15 +02:00
Girish Ramakrishnan 7e9885012d vary dkim selector per mail domain
this is required for the case where the domain is added on multiple
cloudrons. initially, the plan was to just vary this as a derivation
of the dashboard domain. but this will break existing installation (wildcard
and manual domain setups cannot be re-programmed automatically).
2019-06-10 18:35:38 -07:00
Girish Ramakrishnan 1de785d97c cloudron-support: add ip addr output
with cloudflare dns, we don't have ip to login
2019-06-10 09:31:34 -07:00
Girish Ramakrishnan 2bd6566537 clear timeout when get services status 2019-06-09 22:20:35 -07:00
Girish Ramakrishnan 88fa4cf188 remove reserved 'api' location
this is unused and we have no plans to use it.
2019-06-09 18:16:31 -07:00
Girish Ramakrishnan 2a07c063ab deleting app does not remove backups 2019-06-08 11:08:16 -07:00
Girish Ramakrishnan b26167481e Make the dkim private keys readable
https://forum.cloudron.io/topic/1675/dkim-and-dmarc-for-built-in-outgoing-mail/25
2019-06-06 14:45:42 -07:00
Girish Ramakrishnan 1b6af9bd12 scaleway: add tzdata
the bionic image is missing this and only has UTC in the output
of timedatectl list-timezones
2019-06-06 12:42:07 -07:00
Girish Ramakrishnan 0159963cb0 More changes 2019-06-06 11:43:24 -07:00
Girish Ramakrishnan 996041cabc add mechanism to whitelist and blacklist apps 2019-06-06 11:42:42 -07:00
Girish Ramakrishnan cb0352e33c Do not remove existing custom.yml 2019-06-06 11:24:19 -07:00
Johannes Zellner 3ab9d77930 Give alternate domain rows some space 2019-06-05 20:22:44 +02:00
Johannes Zellner 5537507646 Distinguish alternate and main domain errors 2019-06-05 20:22:34 +02:00
Johannes Zellner 3169f032c8 Return correct conflicting domain 2019-06-05 19:54:15 +02:00
Girish Ramakrishnan 5ff8ee1a8f Check manifest version when installing an app
This should have been done for manifest v1 already. For now, apps
will have to put in a minBoxVersion.
2019-06-03 14:02:47 -07:00
Girish Ramakrishnan d3f31a3ace Ensure all env vars have the CLOUDRON_ prefix
this is currently injected based on the manifest version (i.e v2)
2019-06-03 13:45:35 -07:00
Girish Ramakrishnan ac7e7f0db9 Set name as the network alias for app containers
this allows scheduler containers to reach app containers by http

https://forum.cloudron.io/topic/1082/bitwarden-self-hosted-password-manager
2019-06-01 10:48:51 -07:00
Girish Ramakrishnan 4c1e967dad give containers a hostname
this only affects the hostname and not the network name/alias
2019-06-01 10:02:26 -07:00
Girish Ramakrishnan f3ccd5c074 More changes 2019-06-01 09:05:48 -07:00
Girish Ramakrishnan 215dd03751 Show dataDir UI 2019-06-01 09:05:15 -07:00
Girish Ramakrishnan 3fe73ba198 Move dataDir and memory to resources section 2019-06-01 09:02:05 -07:00
Girish Ramakrishnan 6bc7edea67 Revert "Attempt to finally fix checkboxes and radio button layout"
This reverts commit f95a98d3ee.

This breaks access restriction page spacing
2019-05-31 15:24:13 -07:00
Girish Ramakrishnan c44e69c396 Add help link for redirection 2019-05-31 14:41:47 -07:00
Girish Ramakrishnan f6ad697755 Replace big plus button with text link 2019-05-31 14:39:35 -07:00
Girish Ramakrishnan 2abca93333 Make the preview icon smaller 2019-05-31 14:25:03 -07:00
Girish Ramakrishnan 788e7c40e9 Add Access tab to configure UI 2019-05-31 14:14:34 -07:00
Girish Ramakrishnan 8369c0e2c0 4.1.2 changes 2019-05-31 12:52:57 -07:00
Johannes Zellner dca43f3e57 Allow to configure more than one alternate domain 2019-05-31 15:19:07 +02:00
Johannes Zellner f95a98d3ee Attempt to finally fix checkboxes and radio button layout 2019-05-31 12:31:02 +02:00
Girish Ramakrishnan 122a966e72 No exclamation 2019-05-30 12:17:47 -07:00
Girish Ramakrishnan 9c2ff2f862 fix image prune logic 2019-05-29 12:15:13 -07:00
Girish Ramakrishnan 0ba45e746b Accept incoming mail from a private relay 2019-05-29 11:33:37 -07:00
Girish Ramakrishnan 11fe3dc492 support: show create ticket result 2019-05-28 10:04:18 -07:00
Girish Ramakrishnan 54c06cdabb support: send a result message 2019-05-28 10:04:04 -07:00
Girish Ramakrishnan 4277244150 fix text: Event Log 2019-05-24 19:03:13 -07:00
Girish Ramakrishnan 5a2e10317c remove autoconf
this was mostly for caas
2019-05-24 15:20:25 -07:00
Girish Ramakrishnan 8292d52acf Add changes 2019-05-24 11:19:22 -07:00
Girish Ramakrishnan 8458bcf10e make the info text small 2019-05-24 10:28:42 -07:00
Girish Ramakrishnan 6c8c7751fd Add note that access control allows SFTP access 2019-05-24 10:25:34 -07:00
Girish Ramakrishnan 7d21470fc7 remove cloudron-provision
will move to separate repo
2019-05-22 22:33:41 -07:00
Girish Ramakrishnan eb0530bcba add note 2019-05-22 18:33:02 -07:00
Girish Ramakrishnan 8855092faa update changes 2019-05-22 14:39:47 -07:00
Girish Ramakrishnan 2e02a3c71e Revert "only admins have sftp access"
This reverts commit ecc9415679.

We want to support the workflow where normal users can have SFTP
access without being cloudron admins. The reason it is admin only
is because it is possible to upload/modify app code via SFTP to
then get cloudron admin credentials.

For this reason, we will fixup the apps as follows:
* Unmanaged WP - remove LDAP integration
* LAMP - remove LDAP. We will make a new major version that informs
  the user NOT to update the app if they use LDAP. In 4.1, we will
  expose the LDAP server, so they can use the public LDAP server for
  any integration.
* Managed WP - Remove SFTP. This is contential but if people want to
  really build/develop plugins then they can use Unmanaged WP for the dev
  environment.
* Surfer - no change. Can have SFTP and LDAP since code is not modifiable

In general, should also be careful then about adding SFTP access to random
apps (like say nextcloud), since this would allow normal user to access
other people's data.
2019-05-22 14:32:45 -07:00
Girish Ramakrishnan d6096d04d9 remove twitter from footer 2019-05-22 11:56:55 -07:00
Girish Ramakrishnan bffe6327a0 setup: have a single error object 2019-05-22 11:14:33 -07:00
Girish Ramakrishnan 28845d6f33 state and not status 2019-05-22 10:50:58 -07:00
Girish Ramakrishnan 5b5303ba7f Always return object in response 2019-05-22 10:41:34 -07:00
Girish Ramakrishnan 022a54278e Add missing error code 2019-05-22 10:41:25 -07:00
Girish Ramakrishnan 19b50dc428 do not dump values in debug
it ends up dumping the icon in logs
2019-05-22 09:38:27 -07:00
Girish Ramakrishnan 6ec7da9071 fix text 2019-05-22 09:38:13 -07:00
Johannes Zellner 5dbe564afb Use the same size aspect ratio for custom app icon selector as in the app grid 2019-05-22 09:32:10 +02:00
Johannes Zellner 4794791167 Style the custom app icon configuration the same way the avatar is 2019-05-22 09:29:17 +02:00
Girish Ramakrishnan e7eac003a9 cloudron-support: add ssh keys like support.js 2019-05-21 09:50:38 -07:00
Girish Ramakrishnan cc17c6b2cd cloudron-support: add set 2019-05-21 09:21:22 -07:00
Girish Ramakrishnan 7b2ae2c457 Make reset show the original icon 2019-05-21 00:18:29 -07:00
Girish Ramakrishnan 23d16b07aa Add API to get original icon 2019-05-21 00:14:54 -07:00
Girish Ramakrishnan f0093c5e4f Add random string to icon to invalidate it 2019-05-21 00:06:33 -07:00
Girish Ramakrishnan 96117216ee Allow icon to be set 2019-05-20 22:24:58 -07:00
Girish Ramakrishnan 9982557909 setAdmin is unused 2019-05-20 19:05:31 -07:00
Girish Ramakrishnan 530331f9ee Fix texts in dialogs 2019-05-20 19:05:12 -07:00
Girish Ramakrishnan 23018abdf6 Put some text in delete user dialog 2019-05-20 19:05:12 -07:00
Girish Ramakrishnan 23b72620a1 domain remove does not require password 2019-05-20 19:05:08 -07:00
Girish Ramakrishnan a80c21d77f domainMigrate is unused 2019-05-20 18:58:33 -07:00
Girish Ramakrishnan 7ecb3dd771 Fix resolution of cloudflare MX record
cf might rewrite the MX record if it deems that there is a conflict

https://support.cloudflare.com/hc/en-us/articles/360020296512-DNS-Troubleshooting-FAQ
2019-05-20 18:20:04 -07:00
Johannes Zellner 765307ddef Fix domain filter select 2019-05-20 23:40:02 +02:00
Johannes Zellner 9a859629bc Remove unused usedDomains 2019-05-20 23:23:07 +02:00
Johannes Zellner e43f974d34 Rework namecheap tests 2019-05-20 22:21:20 +02:00
Johannes Zellner cc7b203f93 Only allow selecting one domain in the apps filter 2019-05-20 21:06:13 +02:00
Girish Ramakrishnan 8744eadca0 Fixup text 2019-05-20 10:55:46 -07:00
Girish Ramakrishnan e16cd38722 Update changes 2019-05-20 10:34:54 -07:00
Girish Ramakrishnan 9d2f81d6b9 Remove X-Frame-Options
This option is now obsolete in the standards and browsers are complaining.
This needs to move to be a CSP header but this is hard to do from outside
the app (since it has to be 'merged' with the app's existing CSP).

fixes #596
2019-05-20 10:11:52 -07:00
Girish Ramakrishnan 76eaee5b1a Remove X-Frame-Options 2019-05-20 10:10:36 -07:00
Johannes Zellner 3fe539436b Sinon was only used in old namecheap tests 2019-05-20 16:35:23 +02:00
Girish Ramakrishnan 76f94eb559 namecheap module is not used 2019-05-18 09:41:05 -07:00
Girish Ramakrishnan 7630ef921d Add changes 2019-05-17 14:40:33 -07:00
Girish Ramakrishnan 7adde2a880 Make tag matching an AND operation 2019-05-17 13:01:23 -07:00
Girish Ramakrishnan 625127d298 add icon to configure route 2019-05-17 12:50:08 -07:00
Girish Ramakrishnan f24c4d2805 Look for a user set app icon 2019-05-17 10:14:02 -07:00
Girish Ramakrishnan 194340afa0 protect app icon route 2019-05-17 09:54:45 -07:00
Girish Ramakrishnan c02eced029 no comma 2019-05-16 10:14:29 -07:00
Girish Ramakrishnan ad5ca50273 filter on alt domains also 2019-05-16 09:55:24 -07:00
Girish Ramakrishnan 767756ba9b sort the tags 2019-05-16 09:42:34 -07:00
Johannes Zellner fdc9639aba Deal with bad namecheap API naming convention 2019-05-16 18:03:09 +02:00
Johannes Zellner f95ec53a85 Check for namecheap response status 2019-05-16 18:03:09 +02:00
Johannes Zellner 3d425b7030 Rewrite namecheap backend to not rely on unmaintained node module 2019-05-16 18:03:09 +02:00
Girish Ramakrishnan 37c6c24e0e caas is dead 2019-05-16 08:49:08 -07:00
Girish Ramakrishnan 50bdd7ec7b mail: Remove authType when username is empty 2019-05-15 16:23:56 -07:00
Girish Ramakrishnan 769cb3e251 Update mail container 2019-05-15 15:54:51 -07:00
Girish Ramakrishnan 9447c45406 enable the gcdns test 2019-05-15 10:18:30 -07:00
Johannes Zellner 66a3962cfe Do not create notifications when apps are updated through the cli 2019-05-15 19:15:57 +02:00
Girish Ramakrishnan d145eacbaf send domain in auto-register
previously, this was done during startup and we didn't have a domain
in hand
2019-05-15 09:58:59 -07:00
Girish Ramakrishnan c3cf5ff84c Use changeDashboardDomain custom config 2019-05-14 19:21:15 -07:00
Girish Ramakrishnan ed03ed7bad make changeDashboardDomain customizable 2019-05-14 19:20:45 -07:00
Girish Ramakrishnan a82c790855 Always show the change dashboard domain
otherwise, people don't know this feature exists!
2019-05-14 19:12:45 -07:00
Girish Ramakrishnan 953b463799 4.1.0 changes 2019-05-14 18:00:34 -07:00
Johannes Zellner 6d28bb0489 4.0.3 changes
(cherry picked from commit 8686832bd1)
2019-05-14 16:17:00 -07:00
Johannes Zellner 4b22e3e0a8 Hide the token, session and oauch client ui for non admins 2019-05-14 16:55:29 +02:00
Johannes Zellner 2039a143ac Do not crash if some apis are only for admins 2019-05-14 16:41:08 +02:00
Girish Ramakrishnan 84473dc10d poll subscription status only when button got clicked
otherwise, both stripe, our appstore db is bombarded
2019-05-13 16:40:51 -07:00
Girish Ramakrishnan 5695da1d86 refresh notifications every minute
no reason to bombard the server, it's not like this is realtime
2019-05-13 16:13:09 -07:00
Johannes Zellner 30583cce21 Do not require password for user and group deletion 2019-05-13 23:55:54 +02:00
Johannes Zellner c2f464ea75 password change api now returns 400 instead of 403 2019-05-13 23:46:38 +02:00
Johannes Zellner 27c7c0438f account password change now returns 400 2019-05-13 23:42:06 +02:00
Johannes Zellner b67d5eec3d Remove password requirement for app uninstall and restore 2019-05-13 23:31:45 +02:00
Johannes Zellner 7c2ea6288c Fix the default app grid with to avoid occasional overflow 2019-05-13 23:04:40 +02:00
Johannes Zellner 4c56ffc767 Add default footer content to custom.yml 2019-05-13 22:50:28 +02:00
Johannes Zellner 885aa8833c Remove password requirement for destructive rest routes 2019-05-13 22:48:33 +02:00
Johannes Zellner 63310c44c0 Ensure notifications are sorted by time descending 2019-05-13 22:05:58 +02:00
Johannes Zellner 9a1d71face Prevent notification collapse toggle when attempting selecting message details 2019-05-13 21:06:20 +02:00
Johannes Zellner 05dd65718f Remove unused CLOUDRON_ID 2019-05-13 16:28:46 +02:00
Girish Ramakrishnan 05d3f8a667 gcs: fix crash 2019-05-12 18:05:48 -07:00
Girish Ramakrishnan 3fa45ea728 4.0.2 changes 2019-05-12 13:59:57 -07:00
Girish Ramakrishnan 8e346bf676 Add checkbox to skip backup 2019-05-12 13:44:10 -07:00
Girish Ramakrishnan a7d2098f09 Add option to skip backup before update 2019-05-12 13:28:53 -07:00
Girish Ramakrishnan e1ecb49d59 gcdns: fix crash 2019-05-11 19:18:11 -07:00
Johannes Zellner 53a00a8d76 markdown injects block elements so break out the version 2019-05-11 13:48:22 +02:00
Johannes Zellner 6facfac4c5 Add footer customization option 2019-05-11 13:37:43 +02:00
Johannes Zellner ea1e556197 Allow the footer content to be configured 2019-05-11 13:33:02 +02:00
Johannes Zellner 402d75bfe0 Make the ssh remote support text more generic 2019-05-11 13:26:21 +02:00
Johannes Zellner a444b61edf Remove twitter link from footer and pull version to the right 2019-05-11 10:24:11 +02:00
Johannes Zellner ce41af14db Make sure the tooltip text does not get cropped 2019-05-11 10:04:21 +02:00
Girish Ramakrishnan d52d606088 Use ticketBodyMarkdown 2019-05-10 17:35:51 -07:00
Girish Ramakrishnan 97d2494fe3 Make ticket body customizable 2019-05-10 17:35:47 -07:00
Girish Ramakrishnan a54be69c96 rework custom configuration 2019-05-10 16:18:43 -07:00
Girish Ramakrishnan 475311f63a Fixup uiSpec use 2019-05-10 16:09:13 -07:00
Johannes Zellner 5509089c49 Fixup the checkbox dom 2019-05-10 23:47:36 +02:00
Girish Ramakrishnan 800e25a7a7 Fix crash because params was undefined 2019-05-10 13:07:29 -07:00
Girish Ramakrishnan c1ce2977fa custom: refactor code for defaults 2019-05-10 11:31:16 -07:00
Girish Ramakrishnan 3698220b8f features -> uiSpec 2019-05-10 11:23:53 -07:00
Girish Ramakrishnan 7177f82041 use 405 when feature disabled
403 will logout the user
2019-05-10 09:50:33 -07:00
Girish Ramakrishnan b22dba00a2 Make login work after user becomes admin 2019-05-10 09:45:37 -07:00
Girish Ramakrishnan 3d8ec5531c Fix avatarUrl use 2019-05-10 09:27:43 -07:00
Girish Ramakrishnan ecc9415679 only admins have sftp access
this is because webterminal, upload/download etc are also only
restricted to admins. this keeps it aligned
2019-05-10 08:59:16 -07:00
Girish Ramakrishnan 23280f1635 make custom.yml empty by default 2019-05-10 07:40:56 -07:00
Girish Ramakrishnan af062631c5 Add changes 2019-05-09 17:28:59 -07:00
Girish Ramakrishnan 7df0ae0ba3 Allow email to be enabled without dns setup
This helps in importing existing mail and also configuring mailboxes
before going live
2019-05-09 15:41:37 -07:00
Johannes Zellner 05d37cc6c6 Show domain filter only if we have more than one domain 2019-05-09 19:48:00 +02:00
Johannes Zellner 99b866736c Fix updatechecker tests 2019-05-09 15:09:55 +02:00
Girish Ramakrishnan 9e74b666fb More caas removal 2019-05-08 20:01:14 -07:00
Girish Ramakrishnan 1cc54f9a71 Remove caas_config 2019-05-08 15:38:11 -07:00
Girish Ramakrishnan a2d8ef7c63 remove more caas related code 2019-05-08 15:36:34 -07:00
Girish Ramakrishnan 0835a6d690 caas: remove storage backend 2019-05-08 15:33:23 -07:00
Girish Ramakrishnan 67e0a19e13 caas: remove provision token check 2019-05-08 15:30:05 -07:00
Girish Ramakrishnan 6fa13f1bcc caas: remove backupDone 2019-05-08 15:28:37 -07:00
Girish Ramakrishnan 25604774b9 caas: remove setupDone 2019-05-08 15:27:29 -07:00
Girish Ramakrishnan b0fb989be0 caas: remove heartbeat 2019-05-08 15:24:37 -07:00
Johannes Zellner 61c70b9922 Update the demo link 2019-05-08 18:52:18 +02:00
Johannes Zellner df03f783f8 Change the demo link 2019-05-08 18:46:41 +02:00
Johannes Zellner 8b5bdf4e88 Remove all digest email code 2019-05-08 12:19:56 +02:00
Johannes Zellner 84d8d4a745 Remove digest from cron 2019-05-08 12:16:50 +02:00
Girish Ramakrishnan 04f93fb90f caas: pass config.provider as query param 2019-05-07 21:04:09 -07:00
Girish Ramakrishnan d559af15b8 caas: license is migrated on the appstore side now 2019-05-07 19:37:35 -07:00
Girish Ramakrishnan 1510e13066 Add a debug 2019-05-07 18:41:13 -07:00
Girish Ramakrishnan d7cb8842d3 For now auto-register in the setup route
otherwise, it auto-registers immediately after cloudron-setup
i.e at the image creation time
2019-05-07 17:44:02 -07:00
Girish Ramakrishnan 7596411d70 remove appstoreConfig from autoconf 2019-05-07 17:05:01 -07:00
Girish Ramakrishnan 876cef5970 trim the license 2019-05-07 16:49:34 -07:00
Girish Ramakrishnan 1ebc077721 cloudron-setup: unbound variable 2019-05-07 15:29:34 -07:00
Girish Ramakrishnan f5acdc0c4b skip license migration for caas 2019-05-07 15:09:00 -07:00
Girish Ramakrishnan 866321da4d Implement auto-registration 2019-05-07 15:08:56 -07:00
Girish Ramakrishnan 58696c5132 register: send token as body param 2019-05-07 14:26:45 -07:00
Girish Ramakrishnan 3d11dfaae3 rename registerCloudron func 2019-05-07 14:16:56 -07:00
Girish Ramakrishnan 3cc320b1d0 Send support email configuration 2019-05-07 14:02:51 -07:00
Girish Ramakrishnan cd9263711f feedback -> ticket 2019-05-07 11:36:12 -07:00
Girish Ramakrishnan 2efeab3493 feedback -> ticket 2019-05-07 11:36:08 -07:00
Girish Ramakrishnan a78cab36ab Make support and alert email customizable 2019-05-07 11:30:12 -07:00
Girish Ramakrishnan 41e525e037 alerts_to and alerts_from are unused in mail container 2019-05-07 11:29:59 -07:00
Girish Ramakrishnan 33d5cb3061 initial features implementation 2019-05-07 10:29:47 -07:00
Girish Ramakrishnan 48c3372c33 Use config.features to customize UI 2019-05-07 10:11:54 -07:00
Johannes Zellner 0cf523c285 update the package lock file 2019-05-07 16:23:31 +02:00
Johannes Zellner 9e346e0780 More mariadb related test fixes 2019-05-07 15:31:32 +02:00
Johannes Zellner 9cd25e548f Fix wrong arguments for mocha in runTests script 2019-05-07 15:31:05 +02:00
Johannes Zellner d221e40602 Hack to fix test runs on arch which only has mariadb 2019-05-07 15:06:38 +02:00
Johannes Zellner a6ce5ce796 Do not callback early to avoid loosing emails 2019-05-07 14:22:51 +02:00
Johannes Zellner 23bfb7b8e6 Improve app update notification message 2019-05-07 12:19:40 +02:00
Johannes Zellner b536c8196b Create app updated eventlog entry and notification 2019-05-07 12:04:43 +02:00
Johannes Zellner 8f677177f2 Add app update email 2019-05-07 12:04:28 +02:00
Johannes Zellner bb7cac4855 Add event log entries for app task lifecycle 2019-05-07 11:26:26 +02:00
Girish Ramakrishnan e62fa01ab3 Add test for re-registration 2019-05-06 20:20:07 -07:00
Girish Ramakrishnan 5be48c5486 remove auto-registration logic from provision
we will do this instead on cloudron startup
2019-05-06 20:13:02 -07:00
Girish Ramakrishnan 6265efd5e7 Bail on first failure 2019-05-06 20:10:50 -07:00
Girish Ramakrishnan 5d1ff97bf3 remove edition flag 2019-05-06 20:05:18 -07:00
Girish Ramakrishnan 1decfe8063 Show proper error if available 2019-05-06 20:05:12 -07:00
Girish Ramakrishnan 222d2840cf Remove settings locked field
this was a too generic and will be replaced with feature flags
2019-05-06 20:03:15 -07:00
Girish Ramakrishnan 0e8fe8cd07 temporary hack to make the tests work 2019-05-06 19:53:54 -07:00
Girish Ramakrishnan f96a8bc269 remove config.edition
we will replace this with feature flags
2019-05-06 19:53:34 -07:00
Girish Ramakrishnan bbced03f3a Check if Cloudron is already registered 2019-05-06 19:46:42 -07:00
Girish Ramakrishnan ffe0e6dbbe Fix various error handling
* appstore never returns 403
* change billing_required to plan_limit
2019-05-06 15:36:37 -07:00
Girish Ramakrishnan 7bb6016f7b rename purchase calls 2019-05-06 14:29:56 -07:00
Johannes Zellner d5f58eea34 Fix ejs and add update url 2019-05-06 22:44:46 +02:00
Johannes Zellner 204c659af2 Fixup wrong indentation 2019-05-06 22:35:01 +02:00
Johannes Zellner ae5eb00bd0 Batch all available app updates in updatechecker 2019-05-06 22:09:18 +02:00
Johannes Zellner 61c059babe Revert "Notify admins on app update"
We will instead create eventlog entries

This reverts commit 22efb96f66.
2019-05-06 20:16:29 +02:00
Johannes Zellner a4e4d30d5d Make app fqdn a clickable link 2019-05-06 17:59:48 +02:00
Johannes Zellner c4fbfd32ee The updateInfo is not the manifest object 2019-05-06 17:55:49 +02:00
Johannes Zellner 4f5af1f7be Variable name clashes with module name 2019-05-06 17:42:26 +02:00
Johannes Zellner 22efb96f66 Notify admins on app update 2019-05-06 17:14:02 +02:00
Johannes Zellner b7d3014aab If an app cannot be updated automatically send notification mail 2019-05-06 16:37:55 +02:00
Johannes Zellner a3d0ffb7de Avoid throwing error on quick view switch away from the appstore 2019-05-06 11:47:57 +02:00
Girish Ramakrishnan fc7e72835e Fix error code typo 2019-05-06 02:45:16 -07:00
Johannes Zellner 59a54f8683 Do not show error and empty appstore details if not yet setup 2019-05-06 11:39:45 +02:00
Girish Ramakrishnan d824ced70f Fix migration script 2019-05-06 02:34:47 -07:00
Johannes Zellner 2b9147bbc0 Return distinct errors for invalid or no appstore token 2019-05-06 11:07:50 +02:00
Johannes Zellner 83e2bd6ade Distinguish between not yet registered and invalid appstore token
This is to avoid throwing errors
2019-05-06 11:07:20 +02:00
Girish Ramakrishnan 1ea9a0af50 Fix comment 2019-05-05 17:01:53 -07:00
Girish Ramakrishnan 7825cf06c0 Expire existing login tokens
this is because we added 2 new scopes - appstore scope and subscription scope
2019-05-05 13:48:08 -07:00
Girish Ramakrishnan 20a2f56184 Rename registration routes 2019-05-05 13:19:40 -07:00
Girish Ramakrishnan a59aca10ec Fixup subscription routes 2019-05-05 13:02:23 -07:00
Girish Ramakrishnan 9ac6e65087 Wait for app list before setting ready flag 2019-05-05 11:52:42 -07:00
Girish Ramakrishnan deb8e117ad After login/register, get the latest subscription 2019-05-05 11:28:42 -07:00
Girish Ramakrishnan 22be3ad948 Fix test 2019-05-05 11:06:52 -07:00
Girish Ramakrishnan dfa5a0f5fe subscribe must return 201 2019-05-05 10:55:15 -07:00
Girish Ramakrishnan b7d046533c typo 2019-05-05 10:46:43 -07:00
Girish Ramakrishnan c74cf59e3b Fix http status code handling 2019-05-05 10:31:42 -07:00
Girish Ramakrishnan 9c3cae5eca lint: quotes 2019-05-05 09:05:06 -07:00
Girish Ramakrishnan 92941260a5 migration: remove appstore_config 2019-05-05 08:23:20 -07:00
Girish Ramakrishnan 1fbbeba5bc Get subscription first and then get apps 2019-05-05 08:16:33 -07:00
Girish Ramakrishnan 8317972078 Fix typo when fetching groups 2019-05-05 07:40:11 -07:00
Girish Ramakrishnan 0a9947dbb9 No need to get unstable config
this is now handled in the backend
2019-05-05 07:38:34 -07:00
Girish Ramakrishnan 51521926e7 Use new registration API 2019-05-04 22:02:02 -07:00
Girish Ramakrishnan 8e08ac2ce1 Use new subscription API in settings controller 2019-05-04 21:57:53 -07:00
Girish Ramakrishnan fec82d127e Use the new getSubscription API in main controller 2019-05-04 21:57:49 -07:00
Girish Ramakrishnan 74fdcb0781 Handle billing required 2019-05-04 21:56:34 -07:00
Girish Ramakrishnan 6ab38633c2 handle extra errors 2019-05-04 21:42:33 -07:00
Girish Ramakrishnan ceb0770ea0 Add the subscription API 2019-05-04 19:22:24 -07:00
Girish Ramakrishnan 34eadebe00 Remove spaces code 2019-05-04 18:43:59 -07:00
Girish Ramakrishnan e553ade936 remove spaces support
this feature is unused for too long now
2019-05-04 18:34:28 -07:00
Girish Ramakrishnan e7f614cdf3 Remove unused caas functions 2019-05-04 18:23:32 -07:00
Girish Ramakrishnan 18507f79b1 Use the new appstore API 2019-05-04 18:22:41 -07:00
Girish Ramakrishnan b4b3fd9ab6 Add appstore routes 2019-05-04 17:48:04 -07:00
Girish Ramakrishnan 4fc6f5a094 Handle already exists 2019-05-04 11:13:49 -07:00
Johannes Zellner 0f521e2521 Fix appstore config migration script 2019-05-04 17:46:18 +02:00
Girish Ramakrishnan 088b016083 add test for signup+subscription 2019-05-03 20:25:44 -07:00
Girish Ramakrishnan ccb2fcf39b Add API to get subscription 2019-05-03 20:22:31 -07:00
Girish Ramakrishnan f6e82e93e4 Fix test again 2019-05-03 20:05:03 -07:00
Girish Ramakrishnan 02126caacd fix update checker test 2019-05-03 20:01:08 -07:00
Girish Ramakrishnan 8f55565dbf Remove notification logic that depended on free plan
this is from a time when we used to withhold updates for free users
2019-05-03 19:56:27 -07:00
Girish Ramakrishnan 3246edd5a8 rework cloudron registration flow
we now route all the registration, login etc via the backend

subscription management are also in a separate scope now
2019-05-03 19:47:20 -07:00
Girish Ramakrishnan 7e7e067b5b rename appstore_token to cloudron_token 2019-05-03 16:03:45 -07:00
Girish Ramakrishnan fd0bdbce7e Fix up app purchase and unpurchase routes 2019-05-03 14:53:19 -07:00
Girish Ramakrishnan 5ba8a8f7da Use appstore token in update check routes 2019-05-03 11:59:35 -07:00
Girish Ramakrishnan a799b0931f Use licenseToken in alive route 2019-05-03 11:36:48 -07:00
Girish Ramakrishnan d895786f55 Use licenseToken in feedback API 2019-05-03 11:10:53 -07:00
Girish Ramakrishnan 4d89b4a8df migrate appstore_config to license
the appstore_config was based on user login tokens. if lost, they
can compromise the cloudron.io account. with license token, losing
the token in safe
2019-05-03 11:03:33 -07:00
Johannes Zellner ee1c7dbf03 Mark unstable apps in the appstore view 2019-05-03 15:56:59 +02:00
Girish Ramakrishnan 868af95ff2 appstore: remove unused getCloudronDetails 2019-05-02 15:28:07 -07:00
Girish Ramakrishnan e544e77fd9 remove unused appstore.getAccount 2019-04-30 22:30:34 -07:00
Girish Ramakrishnan 7a5a94614e remove unused appstore.getCloudron 2019-04-30 22:26:37 -07:00
Johannes Zellner c935811e08 Correctly upsert also the creationTime for special alert notifications
to avoid confusion, the upsert code moves to the only place used inside
alert
2019-04-30 16:45:24 +02:00
Johannes Zellner 01f59d39e0 Support unstable app listing setting in appstore view 2019-04-29 14:58:42 +02:00
Girish Ramakrishnan cd6d97c3eb Fix onTick handler 2019-04-28 15:55:01 -07:00
Johannes Zellner 0226a5603d Add settings UI to enable unstable apps listing 2019-04-27 22:44:41 +02:00
Johannes Zellner 292f0624fb Add unstable apps config tests and fix default value 2019-04-27 22:34:52 +02:00
Johannes Zellner 9fb0d1f3bf Remove unused require 2019-04-27 22:30:57 +02:00
Johannes Zellner d82b722887 Add unstable apps boolean setting 2019-04-27 22:30:32 +02:00
Girish Ramakrishnan 3bcab14de1 caas: make heartbeat not error if not configured yet
the heartbeat errors when the domain is setup but the restore/setup call
has not been invoked yet from the caas sever
2019-04-26 12:53:10 -07:00
Girish Ramakrishnan 3ded411c15 caas: migrate from fqdn to boxId in backup api 2019-04-26 10:55:50 -07:00
Girish Ramakrishnan 706c970314 caas: fixup routes 2019-04-26 10:19:37 -07:00
Girish Ramakrishnan 35dfd540b5 caas: move backupDone 2019-04-26 10:06:03 -07:00
Girish Ramakrishnan 7c4394d8cb caas: change domains route 2019-04-25 21:56:22 -07:00
Girish Ramakrishnan 69972e6460 cloudron-setup: remove support for pre-3.2 2019-04-25 19:38:24 -07:00
Girish Ramakrishnan 1629be3788 Add tag placeholder 2019-04-25 10:49:07 -07:00
Johannes Zellner dd19f11e29 Handle ldap server errors grazefully 2019-04-25 13:19:23 +02:00
Johannes Zellner b312414957 Arch does not have app armor support in the kernel 2019-04-25 09:30:23 +02:00
Girish Ramakrishnan f3910f03ca Enable logStream test
fixes apptask logs in test mode and the id of stream logs
2019-04-24 16:27:00 -07:00
Girish Ramakrishnan 080c667d9c tests: bump expiry 2019-04-24 15:39:47 -07:00
Girish Ramakrishnan 2bf0614da1 load apparmor profile for the tests to work 2019-04-24 14:39:22 -07:00
Girish Ramakrishnan bd5bdfa8b5 Fix apps test 2019-04-24 14:33:18 -07:00
Girish Ramakrishnan d1582a435d readdirp args have changed 2019-04-24 10:47:04 -07:00
Johannes Zellner 480bc630da show app label if present 2019-04-24 14:31:52 +02:00
Johannes Zellner 165cc279de Allow to set app label 2019-04-24 14:25:37 +02:00
Johannes Zellner d27aa8821a Send app label meta information 2019-04-24 14:25:23 +02:00
Girish Ramakrishnan f5f08cf9ff Add more changes 2019-04-23 21:35:53 -07:00
Girish Ramakrishnan 2ec5a2acff List unstable apps by default 2019-04-23 21:16:11 -07:00
Girish Ramakrishnan 6914e83dde Typo 2019-04-23 15:47:20 -07:00
Girish Ramakrishnan 263762c0bc relay: Add UI to accept self-signed certs 2019-04-23 15:44:18 -07:00
Girish Ramakrishnan 91877f7b2d relay: add option to accept self-signed certs 2019-04-23 15:36:10 -07:00
Girish Ramakrishnan 7f9b078430 cloudron-support: add appsdata and boxdata stats 2019-04-23 10:14:20 -07:00
Girish Ramakrishnan f8b8a574a6 Add new provider with no auth 2019-04-22 17:00:34 -07:00
Girish Ramakrishnan 79c80b351d relay: remove hardcoding of providers 2019-04-22 16:56:43 -07:00
Girish Ramakrishnan e9a01fa0c8 Add changes 2019-04-22 16:50:31 -07:00
Girish Ramakrishnan 2c86fb17fc Revert "Allow empty mail relay username/password"
This reverts commit 2680b415c6.
2019-04-22 15:46:07 -07:00
Girish Ramakrishnan e205ffafdf Fix wording 2019-04-22 11:15:57 -07:00
Girish Ramakrishnan 1f33674f30 more package updates 2019-04-22 11:06:48 -07:00
Johannes Zellner 2680b415c6 Allow empty mail relay username/password 2019-04-22 14:48:32 +02:00
Johannes Zellner badf58db3e Allow empty mail relay username and/or password 2019-04-22 14:41:44 +02:00
Johannes Zellner 58c98be9a7 npm test needs a relative path 2019-04-18 17:14:49 +02:00
Johannes Zellner 71a5555816 Enable all tests and remove unmaintained istanbul code coverage tool 2019-04-18 16:41:10 +02:00
Johannes Zellner aee20c0423 Fix typo for test run handling 2019-04-18 16:01:16 +02:00
Johannes Zellner 95faccd8d9 Make nearly all app tests work now 2019-04-18 13:11:56 +02:00
Johannes Zellner 85ec4a3de7 Ensure we deal with arrays for tags 2019-04-18 13:06:00 +02:00
Johannes Zellner e79b6ade51 Get some of the apps tests to work again 2019-04-17 13:33:10 +02:00
Johannes Zellner 79ccfa087d Only delete docker container within the cloudron network
When running tests they would randomly delete all local docker container
2019-04-17 12:44:03 +02:00
Johannes Zellner 9a349eff32 Do not purge all docker containers in the apps-test 2019-04-16 17:22:03 +02:00
Johannes Zellner e756a442f6 Validate tags in one place only and add tests 2019-04-16 16:36:11 +02:00
Johannes Zellner 332c860e80 If label or tags are present they have to be a specific type 2019-04-16 10:29:44 +02:00
Johannes Zellner d934671202 Do not use unbound for native dns resolving during tests 2019-04-16 10:13:59 +02:00
Johannes Zellner 62d8b35545 Bring back old update badge 2019-04-16 09:21:20 +02:00
Girish Ramakrishnan 747359478d Make send test mail functionality work with secondary domain 2019-04-15 16:58:39 -07:00
Girish Ramakrishnan f0f18db5a8 Remove unused error code 2019-04-15 16:54:41 -07:00
Girish Ramakrishnan 2f068c66d4 sendTestMail: return error 2019-04-15 16:54:25 -07:00
Girish Ramakrishnan fa5415b1eb get rid of mail queue
this prevents us from returning mail errors synchronously
2019-04-15 16:39:09 -07:00
Johannes Zellner 2b578efdd6 Do not add empty app tags 2019-04-15 15:44:02 +02:00
Johannes Zellner e23fd5e3c5 return an empty tag array instead of null 2019-04-15 15:43:45 +02:00
Johannes Zellner a7f37df34d only show tag or domains filter if any are available 2019-04-15 14:38:35 +02:00
Johannes Zellner 3edb119422 Remove unused function 2019-04-15 14:36:15 +02:00
Johannes Zellner 07d4d5051a Simplify the app grid filter to basic dropdowns for now 2019-04-15 14:31:12 +02:00
Girish Ramakrishnan 996c838320 timestamp -> tag
later, we can actually move this tag to a separate field in backupdb.
and then, dependsOn can also be removed and we can use this tag as
a collation label.
2019-04-14 11:33:11 -07:00
Girish Ramakrishnan 083b8a6d7b Add preserveSecs to backup entries
We want to keep updates automatic and don't want to keep reminding
users that apps are getting updated etc (i.e beyong the weekly
digest). The reason to remind them is so they can check if the
app updated correctly. in some very corner cases, the app is not
really checked upon for a while and people forget about them until
they check them later. in such cases, it's too late to recover because
the backpus gets cleaned up. this preserve seconds fields, let's us
mark 'update' backups for preservation for 3 weeks.
2019-04-13 18:17:49 -07:00
Girish Ramakrishnan 58625c82a0 Add route to trigger backup cleaner 2019-04-13 18:10:43 -07:00
Girish Ramakrishnan 0b8e5a75f1 Fix backup route 2019-04-13 18:09:56 -07:00
Girish Ramakrishnan 74211dd2c9 Change signature of backupdb.add 2019-04-13 17:28:19 -07:00
Girish Ramakrishnan cd4808e5e2 Update modules 2019-04-13 07:10:46 -07:00
Girish Ramakrishnan f263c73df7 Add scaleway object storage 2019-04-12 10:56:12 -07:00
Girish Ramakrishnan e44ad19bda Add Scaleway ObjectStorage backup backend 2019-04-12 10:10:43 -07:00
Girish Ramakrishnan e31d413551 Add nginx service
We had a case where nginx was not picking up renewed certs. Not sure
if it's a bug in our code or nginx.
2019-04-12 09:47:05 -07:00
Johannes Zellner f89f201764 Show initial tag sidebar 2019-04-12 11:06:56 +02:00
Johannes Zellner 9f8dcdf8ea Revert "Initial attempt to show tags on the apps if any"
This reverts commit f3baf31dcd.
2019-04-12 09:52:47 +02:00
Johannes Zellner f3baf31dcd Initial attempt to show tags on the apps if any 2019-04-11 18:43:03 +02:00
Johannes Zellner a9400785ca Add ability to attach freeform text tags to apps 2019-04-11 18:43:01 +02:00
Johannes Zellner d170a3e5e1 Translate app tags during db record update 2019-04-11 17:18:11 +02:00
Johannes Zellner 10c3872902 Send app tags along the rest api 2019-04-11 17:06:10 +02:00
Johannes Zellner a3c658d6b8 Add upcloud provider to cloudron-setup 2019-04-11 15:41:34 +02:00
Johannes Zellner 0c8cf9cc0d Fix error messages 2019-04-11 13:35:33 +02:00
Girish Ramakrishnan b92a79eb9d More changes 2019-04-10 09:30:18 -07:00
Johannes Zellner 7c76ad2088 Fix reboot button explanation to not confuse the user when reboot is in fact required 2019-04-09 11:17:11 +02:00
Girish Ramakrishnan ba2c6c1219 do: Sprinkle retries since DO keeps failing on us 2019-04-08 14:35:32 -07:00
Girish Ramakrishnan f0a5cc6116 more debugs 2019-04-08 14:03:26 -07:00
Girish Ramakrishnan 9fbe209c04 Better debug 2019-04-08 13:07:06 -07:00
Girish Ramakrishnan b8bbd73e07 call iteratorDone on error 2019-04-08 12:22:55 -07:00
Girish Ramakrishnan 2e40325f2a Fix _.extend usage
it modifies the destination object
2019-04-08 00:32:12 -07:00
Girish Ramakrishnan bdbd336db5 sftp: update docker image 2019-04-05 13:59:30 -07:00
Girish Ramakrishnan 6a5839d8cd Add sftp logs 2019-04-05 11:01:47 -07:00
Girish Ramakrishnan 744f39623f Make restart button always animate 2019-04-05 10:59:46 -07:00
Girish Ramakrishnan 5c645ea224 sftp: set default memory limit 2019-04-05 10:34:24 -07:00
Johannes Zellner 5c2985cac7 localstorage ftp uid must be a number 2019-04-05 12:59:00 +02:00
Girish Ramakrishnan a0d1016c01 containerize sftp 2019-04-04 22:43:02 -07:00
Girish Ramakrishnan 816cf44117 sftp: Fix uid parsing
format is 33/www-data
2019-04-04 22:38:43 -07:00
Girish Ramakrishnan 1119a62576 fs: emit progress messages for copy and removeDir 2019-04-03 11:54:46 -07:00
Girish Ramakrishnan 152cb48340 Throttle progress messages
This was part of the reason the process was dying out of memory since
we were sending too many messages (I guess it was all getting buffered up)

Part of #626
2019-04-03 11:46:28 -07:00
Girish Ramakrishnan 97e57c74e4 Update progress every 3 secs 2019-04-03 11:46:02 -07:00
Johannes Zellner ff0d6b658b Simplify app icon handling
Previously we even attempted to use an appstore origin icon
2019-04-03 14:43:22 +02:00
Girish Ramakrishnan 5a4c2a4974 Remove max_old_space and use as much as we can
process.memoryUsage() is our friend. also, with --expose-gc we
can use global.gc(). we don't use it yet though

part of #626
2019-04-02 21:42:41 -07:00
Johannes Zellner 1c946a438d Simplify app grid item dom 2019-04-02 13:17:30 +02:00
Johannes Zellner 9b047a1927 Simplify the update indicator 2019-04-02 13:11:00 +02:00
Johannes Zellner 3fc6141d57 Use exact domain matching to filter apps for a domain 2019-04-02 12:41:23 +02:00
Girish Ramakrishnan 9063e8f4a4 syncer: clear cache array to reclaim some memory
part of #626
2019-04-01 14:53:34 -07:00
Girish Ramakrishnan 519552083b remove dead comment 2019-04-01 14:51:34 -07:00
Girish Ramakrishnan f6ad66bd30 rename to ignoreStatError and explicitly ignore ENOENT 2019-04-01 11:56:20 -07:00
Girish Ramakrishnan 65affb5146 Fix test 2019-03-31 18:01:46 -07:00
Girish Ramakrishnan 38d9378e48 Fix issue where tar-fs would complain about missing files
This is being tracked in upstream issue - https://github.com/mafintosh/tar-fs/issues/81

We use a custom fork of tar-fs for now

Fixes #628
2019-03-31 17:43:08 -07:00
Girish Ramakrishnan cd8011e858 add contabo to the help text 2019-03-29 12:07:13 -07:00
Girish Ramakrishnan e352562c51 proftpd: unattended install
on 16.04,
debconf: falling back to frontend: Readline
ProFTPD configuration
---------------------

ProFTPD can be run either as a service from inetd, or as a standalone server.
Each choice has its own benefits. With only a few FTP connections per day, it is
probably better to run ProFTPD from inetd in order to save resources.

On the other hand, with higher traffic, ProFTPD should run as a standalone
server to avoid spawning a new process for each incoming connection.

  1. from inetd  2. standalone
2019-03-27 14:16:55 -07:00
Girish Ramakrishnan 3dd2a19915 Handle case where proftpd is not installed
also, don't install a specific version since it doesn't work in 16.04
2019-03-27 14:07:23 -07:00
Girish Ramakrishnan 384286cf0a cleanup stale redis directory
Fixes #627
2019-03-27 13:50:56 -07:00
Girish Ramakrishnan 162281e753 More changes 2019-03-26 11:59:01 -07:00
Girish Ramakrishnan 9a3603fea3 Add progress messages for multi-part copy 2019-03-26 11:58:32 -07:00
Girish Ramakrishnan 121dc85e40 more changes 2019-03-25 16:15:49 -07:00
Girish Ramakrishnan 823bad2ace add proftpd to base image 2019-03-25 16:15:03 -07:00
Girish Ramakrishnan c9ed8543c8 Capitalize the error 2019-03-25 15:15:39 -07:00
Girish Ramakrishnan d752c68790 re-factor all the audit source objects 2019-03-25 15:15:39 -07:00
Girish Ramakrishnan 39c0409d42 only notify automated backup failures 2019-03-25 15:15:35 -07:00
Girish Ramakrishnan 7937738258 Fix formatting 2019-03-25 14:02:23 -07:00
Girish Ramakrishnan ea092bda99 remove mail notification for apptask and process crash
only events are raised for these
2019-03-25 13:59:55 -07:00
Girish Ramakrishnan 3b908a5857 native-dns: use unbound by default 2019-03-25 11:51:17 -07:00
Johannes Zellner daf7e2313b Reduce domain header font size 2019-03-25 16:33:49 +01:00
Johannes Zellner 75642d785e Only show the headers if we have more than one domain with apps 2019-03-25 16:32:15 +01:00
Johannes Zellner 2621b5c047 Ensure we set the correct display type on the app actions 2019-03-25 16:31:49 +01:00
Johannes Zellner 57cb9a1d0b Only show domains where apps are installed at 2019-03-25 16:17:53 +01:00
Johannes Zellner 6318ae046c Make app actions always visible on mobile
Not great at all, but until we have a better idea at least it is
functional
2019-03-25 16:01:14 +01:00
Johannes Zellner 57a41cde9d Group apps by domain 2019-03-25 10:42:31 +01:00
Girish Ramakrishnan 536e14dfe8 Fix failing settings test 2019-03-24 16:57:45 -07:00
Girish Ramakrishnan edd2c5f779 handle tags being null
in db, we store things as null (not set). but in rest api, we require
the fields to be strings/arrays.
2019-03-23 15:02:24 -07:00
Girish Ramakrishnan ee76c2c06e Return 403 if totp token is invalid
the ui redirects to login screen otherwise
2019-03-23 14:12:46 -07:00
Girish Ramakrishnan 0190a92c26 Add chat link to readme 2019-03-23 13:54:58 -07:00
Girish Ramakrishnan 730da103b1 Fix logstream test 2019-03-23 13:41:05 -07:00
Girish Ramakrishnan ffe30289ee Revert "revert node to 8.15.1"
This reverts commit bec63c1ad0.

ldap: unbind callback never fires in node 10.15 it seems. otherwise,
it all works..
2019-03-23 13:35:12 -07:00
Girish Ramakrishnan cfe9af5c3c Disable this test as well 2019-03-23 13:35:12 -07:00
Girish Ramakrishnan 9647ce153d Make tests work
the namecheap test never seems to work
2019-03-23 10:14:21 -07:00
Girish Ramakrishnan bec63c1ad0 revert node to 8.15.1
the ldap search test fail with 10.15 for some reason

https://github.com/nodejs/Release

maybe related:
https://github.com/joyent/node-ldapjs/issues/510
2019-03-22 17:27:23 -07:00
Girish Ramakrishnan 3dec0ff85b ldap: remove bogus name response 2019-03-22 15:58:53 -07:00
Girish Ramakrishnan 8868d8e99e keep it alphabetical 2019-03-22 15:42:16 -07:00
Girish Ramakrishnan 9a0d9506f8 settings.on is gone 2019-03-22 15:33:25 -07:00
Girish Ramakrishnan ec57b813da Make tests work again 2019-03-22 15:19:20 -07:00
Girish Ramakrishnan 57c4d96467 ensure mysql is storing UTC times 2019-03-22 15:19:17 -07:00
Girish Ramakrishnan ebaf0a08b5 update schema 2019-03-22 14:09:31 -07:00
Girish Ramakrishnan abae4b5106 Add labels and tags 2019-03-22 10:12:48 -07:00
Girish Ramakrishnan 81b721be2b Fix buffer warnings 2019-03-21 20:06:14 -07:00
Johannes Zellner ac86b7a954 Add sftp description in dashboard 2019-03-20 21:29:24 -07:00
Johannes Zellner 0bc500e34f Add robots.txt template 2019-03-20 09:53:10 -07:00
Johannes Zellner a60e065e43 Make the documentation link a more visible button 2019-03-20 09:32:33 -07:00
Johannes Zellner 5563b6a786 Show upstream version if available in the info dialog 2019-03-20 09:22:54 -07:00
Johannes Zellner e9108ae3f8 Reserve sftp port 222 2019-03-19 22:59:29 -07:00
Johannes Zellner acc7b65649 Set uid number from localstorage addon ftp value 2019-03-19 21:17:23 -07:00
Johannes Zellner 77ed177855 Only allow ftp access for apps which support it 2019-03-19 21:13:19 -07:00
Girish Ramakrishnan 71cb5c579d Fix duplicate location error message 2019-03-19 20:50:27 -07:00
Girish Ramakrishnan f22e4c261a Add graphite to list of services 2019-03-19 20:26:21 -07:00
Johannes Zellner 4a046ca70e Check for user access in ldap ftp routes 2019-03-19 16:23:03 -07:00
Johannes Zellner 62ee3fa0f1 Verify proftp ldap connection via ip instead of fake admin account 2019-03-19 15:24:09 -07:00
Johannes Zellner ef0403af0e Make proftpd conf static 2019-03-19 15:24:09 -07:00
Johannes Zellner 044b27967e Make initial sftp connection work 2019-03-19 15:24:09 -07:00
Johannes Zellner 4942a2480b Install proftpd 2019-03-19 15:24:09 -07:00
Johannes Zellner cde852f0f9 Add proftpd as service 2019-03-19 15:24:09 -07:00
Girish Ramakrishnan a435e88b25 rotate task logs 2019-03-18 22:53:47 -07:00
Girish Ramakrishnan add954db80 detect dashboard domain conflict with existing app
Fixes #620
2019-03-18 21:20:13 -07:00
Girish Ramakrishnan 76ec639fea typo 2019-03-17 17:52:37 -07:00
Girish Ramakrishnan 155decfca1 typog 2019-03-17 16:09:21 -07:00
Girish Ramakrishnan 3ab131786b motd: Remove PasswordAuthentication check 2019-03-15 15:01:55 -07:00
Girish Ramakrishnan a273dea755 add no-op provider for mail relay
Fixes #622
2019-03-15 14:38:53 -07:00
Girish Ramakrishnan 0345c52aba Add noop relay backend
Part of cloudron/box#622
2019-03-15 14:25:19 -07:00
Girish Ramakrishnan 9a6d8e3a33 Handle access denied in registerSubdomain 2019-03-13 10:50:18 -07:00
Girish Ramakrishnan 4d9ecef6fd Fix empty digest mails 2019-03-12 16:24:00 -07:00
Girish Ramakrishnan 4df72a4015 Update mysql addon 2019-03-12 12:03:21 -07:00
Girish Ramakrishnan c3e2dc4ce8 migration to overlay2 is now done 2019-03-12 09:10:36 -07:00
Girish Ramakrishnan 5a1bcd53a3 This sounds ominous 2019-03-12 08:49:25 -07:00
Girish Ramakrishnan 4c8865ed5b Make it 3.5.5 instead 2019-03-11 21:23:24 -07:00
Girish Ramakrishnan cb6bd50db0 Update changelog 2019-03-11 21:21:09 -07:00
Girish Ramakrishnan 614dbb3674 Fix crash during restore 2019-03-11 20:41:03 -07:00
Girish Ramakrishnan 05c858df9e Default to DO for mp image 2019-03-11 18:44:48 -07:00
Girish Ramakrishnan 0b4ef21762 DO typo 2019-03-11 18:44:38 -07:00
Girish Ramakrishnan 8ed8bb2dad typo 2019-03-11 18:42:54 -07:00
Girish Ramakrishnan a1f6985534 update all packages
ncu -u
2019-03-11 10:57:43 -07:00
Girish Ramakrishnan 6bdf2e38cc remove query admins from mailer code 2019-03-10 16:28:17 -07:00
Girish Ramakrishnan 19ae55ebd4 Fixup backup failure and cert renewal email notification
in caas, we get an email copy for every admin on cloudron..
2019-03-10 15:53:22 -07:00
Girish Ramakrishnan 61cef46a95 cloudron-support: prefix newline 2019-03-10 14:00:08 -07:00
Girish Ramakrishnan 172738f7b7 Bump mail container 2019-03-10 11:08:09 -07:00
Girish Ramakrishnan 5d0d60d89e Bump cron module to 1.7.0
https://github.com/kelektiv/node-cron/issues/409
https://github.com/kelektiv/node-cron/issues/408
https://github.com/kelektiv/node-cron/issues/405
2019-03-10 10:48:32 -07:00
Girish Ramakrishnan 3cfdc64735 Update to support ecma 8 2019-03-09 22:00:09 -08:00
Girish Ramakrishnan b47069ccad typo 2019-03-09 21:33:56 -08:00
Girish Ramakrishnan 2051b3921b Use constants.ADMIN_LOCATION instead
part of #621
2019-03-09 20:06:12 -08:00
Girish Ramakrishnan 46f46483f8 Mark as internal functions 2019-03-08 19:09:34 -08:00
Girish Ramakrishnan 66b02b58b6 make notifications.alert take a title
the title is better when it's a bit more dynamic
2019-03-08 16:59:48 -08:00
Girish Ramakrishnan 4428c3d7d8 Move docker config file generation to installer logic
the new version of docker does not support devicemapper on ubuntu 16.
so, we have to first enable overlay2 and then install the latest docker
2019-03-08 16:41:39 -08:00
Girish Ramakrishnan 2d4b9786fa box update is now an alert notification 2019-03-07 14:40:46 -08:00
Girish Ramakrishnan d2d9c4be6f update notification 2019-03-07 14:27:43 -08:00
Girish Ramakrishnan a9d6ac29f1 make funcs take proper callbacks 2019-03-07 14:27:23 -08:00
Girish Ramakrishnan 4d50bd5c78 3.5.4 changes 2019-03-07 13:40:20 -08:00
Girish Ramakrishnan 64a58921a8 caas: show notifications
update notification will be moved to backend
2019-03-07 13:25:20 -08:00
Girish Ramakrishnan fdd651b9cc Only append markdownMessage is not-empty 2019-03-07 11:50:49 -08:00
Girish Ramakrishnan 7b56f102cc relay check is always performed 2019-03-06 19:48:18 -08:00
Girish Ramakrishnan e329360daa backup notification now has a doc link and log link 2019-03-06 16:23:25 -08:00
Girish Ramakrishnan 5e8a431a92 Add doc link for cert renweal error 2019-03-06 16:17:56 -08:00
Girish Ramakrishnan cd3f21a92e Add doc links for the app down mail 2019-03-06 16:14:24 -08:00
Girish Ramakrishnan 03d3ae3eb4 Qualify the name in the email subject 2019-03-06 16:08:12 -08:00
Girish Ramakrishnan 0c350dcf6e add a note 2019-03-06 16:05:50 -08:00
Girish Ramakrishnan c6b3d15d72 Fix some typos 2019-03-06 16:02:51 -08:00
Girish Ramakrishnan 8d7f7cb438 rename the constant 2019-03-06 15:55:07 -08:00
Girish Ramakrishnan b5a4121574 Better OOM notification messages 2019-03-06 14:47:24 -08:00
Girish Ramakrishnan 916ca87db4 Expose apps.getByContainerId 2019-03-06 11:15:12 -08:00
Girish Ramakrishnan bfea97f14e refactor apps.postProcess 2019-03-06 11:12:39 -08:00
Girish Ramakrishnan f98657aca8 Remove double query of domains 2019-03-06 11:08:14 -08:00
Girish Ramakrishnan b96098b909 Fix wording a bit more 2019-03-06 09:56:15 -08:00
Johannes Zellner b1dbb2c408 Show when a subscription is already canceled 2019-03-06 15:54:51 +01:00
Johannes Zellner 3b1a08c67e Add pretty date only showing date 2019-03-06 15:54:21 +01:00
Johannes Zellner 07d37e133f more users is not part of the paid plans 2019-03-06 14:32:29 +01:00
Girish Ramakrishnan 45c5e770fa injectPrivateFields already merges fields 2019-03-05 19:38:56 -08:00
Girish Ramakrishnan 161eb8bef9 reduce the timeout 2019-03-04 21:47:14 -08:00
Girish Ramakrishnan f4ce7ecf4b do not add acked alerts 2019-03-04 21:04:31 -08:00
Girish Ramakrishnan 8dfe1fe97f notifications: add ack flag in db logic 2019-03-04 20:44:41 -08:00
Girish Ramakrishnan 4bf165efaf Fix misplaced callback 2019-03-04 20:22:25 -08:00
Girish Ramakrishnan c7f6ae5be9 remove unused require 2019-03-04 19:49:25 -08:00
Girish Ramakrishnan d83d2d5f4e Do not restart mail container when setting fallback certs 2019-03-04 19:35:22 -08:00
Girish Ramakrishnan 2362b2a5a0 Make the version 3.5.3 2019-03-04 18:18:23 -08:00
Girish Ramakrishnan eb518c673c Revert "Revert "Hide dataDir setting for this release""
This reverts commit 347c8a8716.
2019-03-04 18:16:40 -08:00
Girish Ramakrishnan fb08a17ec8 Add some debugs 2019-03-04 18:11:07 -08:00
Girish Ramakrishnan 1bcc2d544a link to logs instead of spatch'ed error 2019-03-04 18:03:51 -08:00
Girish Ramakrishnan 6fd1205681 settings value is a variant 2019-03-04 15:45:04 -08:00
Girish Ramakrishnan da2b00c9cf Move cert change notification into ensureCertificate()
When ensureCertificate renews the cert, the filename will match the
nginx config cert file. The current code detects that this implies
that the cert has not changed and thus does not update mail container.

Move the notification into ensureCertificate() itself. If we have a wildcard
cert and it gets renewed when installing a new app, then mail container will
still get it.
2019-03-04 15:24:09 -08:00
Girish Ramakrishnan f6213595d1 move mailer notification of failed backups
this also removes the splatchError which is causing a crash because
of infinite recursion when backups fail (not sure why)
2019-03-04 15:01:30 -08:00
Girish Ramakrishnan b1b2bd5b97 move cert renewal notification to notification logic 2019-03-04 14:53:19 -08:00
Girish Ramakrishnan aa19cbbfc7 Properly escape filename when downloading files 2019-03-04 13:50:17 -08:00
Girish Ramakrishnan 6f32a0d6de Use encodeURIComponent for encoding query params 2019-03-04 12:59:41 -08:00
Girish Ramakrishnan 8d39faddc9 cleanup temporary file after upload
also, wait for finish event for the http response. this should be
quick because the file has already been upload and we just have to
copy it to the container
2019-03-04 12:28:27 -08:00
Girish Ramakrishnan 52714dbcc9 Update changelog 2019-03-04 12:17:38 -08:00
Girish Ramakrishnan be92d3a0bc Properly escape the filename when uploading files
tested with filename:
Fancy - +!"#$&'\''()*+,:;=?@ - Filename

(in the e2e repo)
2019-03-04 12:16:04 -08:00
Girish Ramakrishnan b0684ce29c encode the filename 2019-03-04 11:54:41 -08:00
Girish Ramakrishnan f3189f72fd Use mail.restartMail alias 2019-03-04 10:42:42 -08:00
Girish Ramakrishnan 144c1d4e2f remove eventemitter pattern
the main issue is that ee pattern does not work across processes.
with task logic, this complicates things
2019-03-04 10:25:18 -08:00
Girish Ramakrishnan e5964f9d93 Remove unused function 2019-03-02 19:31:19 -08:00
Girish Ramakrishnan ea30cbe117 Fix tests 2019-03-02 19:23:39 -08:00
Girish Ramakrishnan 598a9664a7 Fix crash because mailboxName is null
mailboxName is always a non-empty string. even for apps that don't use
it, we allocate a mailbox with .app suffix
2019-03-02 19:18:38 -08:00
Girish Ramakrishnan d04628a42d Suffix .log 2019-03-01 16:55:26 -08:00
Girish Ramakrishnan b2c8a4d8ef Pass crashId to view crash logs 2019-03-01 16:35:52 -08:00
Girish Ramakrishnan 7bce63d74e Add API to get crash logs 2019-03-01 16:33:35 -08:00
Girish Ramakrishnan 452fe9f76d add callback to notification code
the crashnotifier prematurely exits otherwise
2019-03-01 15:17:38 -08:00
Girish Ramakrishnan 7983ff5db2 Stash logs in crash log directory 2019-03-01 15:07:06 -08:00
Girish Ramakrishnan c361ab954d Indicate how often status check is run 2019-03-01 11:30:51 -08:00
Girish Ramakrishnan a8735a6465 Generate detailed mail configuration error notification 2019-03-01 11:15:05 -08:00
Girish Ramakrishnan 76255c0dd4 Typo 2019-02-28 15:22:55 -08:00
Girish Ramakrishnan 87655ff3cd remove action field from notifications table
it is mostly unused
2019-02-28 15:13:51 -08:00
Girish Ramakrishnan fc7be2ac1a Clear notifications if mail/backup/disk space situation changes 2019-02-28 15:13:47 -08:00
Girish Ramakrishnan e93b95bee8 move the switch case to notifications
this way we don't need to export all the functions
2019-02-28 11:38:16 -08:00
Girish Ramakrishnan 6a18d6918e restart mail now restart the service
... and not just the container

Fixes #617
2019-02-28 10:44:26 -08:00
Johannes Zellner d09ac5bcc6 stop notification click event propagation 2019-02-28 15:56:19 +01:00
Girish Ramakrishnan 578ce09b5e Fix digest test 2019-02-27 11:56:16 -08:00
Girish Ramakrishnan 27f6177fc9 do not restart mail container when not activated
provision code is calling setDashboardDomain() which is restarting
the mail server
2019-02-27 11:46:03 -08:00
Johannes Zellner 20c0deeac4 Improve digest email 2019-02-27 12:06:01 +01:00
Johannes Zellner f1f8cdb6e9 Add admin route to test digest 2019-02-27 12:06:01 +01:00
Girish Ramakrishnan c25c3e9daa never show hyphenatedSubdomains UI
can't think of a case where this is required in the UI. for the hosting
provider, they will have to do API automation for the initial domain
setup anyway.
2019-02-26 17:16:01 -08:00
Girish Ramakrishnan 345e4e846c Copy/paste error 2019-02-26 15:03:14 -08:00
Girish Ramakrishnan 6f57b36158 make it executable 2019-02-26 15:03:14 -08:00
Girish Ramakrishnan 0264e10e69 Update license file 2019-02-26 15:03:14 -08:00
Girish Ramakrishnan 067f5bf5a3 auto register cloudron based on license file 2019-02-26 15:03:11 -08:00
Girish Ramakrishnan c81b643cdf cloudron-setup: copy edition license 2019-02-26 12:06:32 -08:00
Girish Ramakrishnan 388ad077d6 cloudron-setup: baseDataDir is not used 2019-02-26 12:04:31 -08:00
Girish Ramakrishnan db93cdd95f Make settings logic use the appstore model code 2019-02-25 18:19:25 -08:00
Girish Ramakrishnan 68304a3fc1 Add registerCloudron and getCloudron 2019-02-25 17:29:42 -08:00
Girish Ramakrishnan 13259c114a block updates if app has a maxBoxVersion less than incoming version 2019-02-25 10:03:50 -08:00
Girish Ramakrishnan 5131ba453d Add another change 2019-02-25 10:03:31 -08:00
Johannes Zellner c1cb5c36a1 Remove unnecessary elements 2019-02-24 19:18:43 +01:00
Johannes Zellner 20118f941e Show clipboard copy indication 2019-02-24 19:17:38 +01:00
Johannes Zellner f40eee4577 Update package lock 2019-02-24 19:16:57 +01:00
Girish Ramakrishnan bee05afc87 Add button to copy the backup id 2019-02-23 19:33:48 -08:00
Girish Ramakrishnan 8fdc9939cd Add locked flag to settings table 2019-02-22 10:08:02 -08:00
Girish Ramakrishnan c15449492a settings: remove appstore scope 2019-02-22 09:43:26 -08:00
Girish Ramakrishnan 1cab1e06d9 aggregate the settings get/set handlers
this makes it easy to check for a settings lock
2019-02-22 09:37:36 -08:00
Girish Ramakrishnan 4831926869 settings: select fields explicitly 2019-02-22 09:31:09 -08:00
Girish Ramakrishnan 4fcf25077b Update docker to 18.09 2019-02-21 15:30:26 -08:00
Girish Ramakrishnan efdc533849 Update to gulp 4 2019-02-21 14:54:16 -08:00
Girish Ramakrishnan 1f7c6d59c1 Update modules for latest node 2019-02-21 14:14:28 -08:00
Girish Ramakrishnan c32461f322 Update node modules 2019-02-21 14:09:28 -08:00
Girish Ramakrishnan 0abe6fc0b4 Fixup node version 2019-02-21 13:41:15 -08:00
Girish Ramakrishnan 981622f414 Add games section 2019-02-21 10:17:41 -08:00
Girish Ramakrishnan edc3d53f94 validate fields in the update response 2019-02-20 16:18:47 -08:00
Girish Ramakrishnan bb5fbbe746 Add boxUpdateInfo to the eventlog
this is used by the email digest code
2019-02-20 16:18:38 -08:00
Girish Ramakrishnan 36f3e3fe50 Enable gzip compression for large objects
This doesn't trigger a re-configure (since it's not a big deal)
2019-02-20 16:03:13 -08:00
Girish Ramakrishnan 65c8000f66 rename function to just "send" 2019-02-20 09:11:45 -08:00
Girish Ramakrishnan 347c8a8716 Revert "Hide dataDir setting for this release"
This reverts commit 7424a226c9.
2019-02-19 14:52:24 -08:00
Girish Ramakrishnan 2d45f8bc40 Update node to 10.15.1 2019-02-19 10:46:59 -08:00
Girish Ramakrishnan 7a0d4ad508 Make reboot required check server side 2019-02-19 09:20:20 -08:00
Girish Ramakrishnan 4542564709 Move reboot required check to server side notification 2019-02-19 09:15:15 -08:00
Johannes Zellner 5ae93bb569 Clear connect-timeout handling for graphs 2019-02-18 13:13:29 +01:00
Girish Ramakrishnan aa6ca46792 Add linode-stackscript as a provider 2019-02-16 13:59:35 -08:00
Girish Ramakrishnan e8c11f6e15 Fix tests 2019-02-15 14:56:51 -08:00
Girish Ramakrishnan 08bb8e3df9 Make token API id based
we don't return the accessToken anymore
2019-02-15 14:31:43 -08:00
Girish Ramakrishnan cb889ce06d token now has an id 2019-02-15 14:21:10 -08:00
Girish Ramakrishnan d62bf6812e Ensure tokens have a name 2019-02-15 13:45:04 -08:00
Girish Ramakrishnan db54a305b0 Token is now shown again anymore 2019-02-15 13:29:16 -08:00
Girish Ramakrishnan 422abc205b do not return accessToken when listing tokens 2019-02-15 13:26:33 -08:00
Girish Ramakrishnan 1269104112 rbl.status is only valid if rbl test was run 2019-02-15 12:22:39 -08:00
Girish Ramakrishnan 97d762f01f relay username also needs to be hidden 2019-02-15 11:44:33 -08:00
Girish Ramakrishnan 671b5e29d0 Hide mail relay password 2019-02-15 11:25:51 -08:00
Girish Ramakrishnan c7538a35a2 Do not escape link 2019-02-14 19:36:59 -08:00
Girish Ramakrishnan 458658a71b Email gets encoded in plain text email
Unbuffered code for conditionals etc <% code %>
Escapes html by default with <%= code %>
Unescaped buffering with <%- code %>
2019-02-14 19:30:02 -08:00
Girish Ramakrishnan e348a1d2c5 make the view a link 2019-02-13 15:15:32 -08:00
Girish Ramakrishnan 59ff3998bc do not send up mails immediately on installation 2019-02-13 14:44:02 -08:00
Girish Ramakrishnan 9471dc27e0 App can also be dead/error 2019-02-12 17:01:45 -08:00
Girish Ramakrishnan 4b559a58d1 Fix use of source object 2019-02-12 16:41:46 -08:00
Girish Ramakrishnan 5980ab9b69 Add healthTime in the database
this is currently an internal field and not returned in API
2019-02-12 16:33:28 -08:00
Girish Ramakrishnan 8ccf17543a abbreviate version 2019-02-11 14:53:23 -08:00
Girish Ramakrishnan 72e99885aa Fix wording 2019-02-11 14:50:03 -08:00
Girish Ramakrishnan 70e5daf8c6 Fix usage of audit source 2019-02-11 14:41:12 -08:00
Girish Ramakrishnan 18d2a9cab6 do not use audit source to generate the details 2019-02-11 14:38:05 -08:00
Girish Ramakrishnan 9c57702afc keep it sorted 2019-02-11 13:03:12 -08:00
Girish Ramakrishnan 92e1553eed Fullstop 2019-02-11 12:58:38 -08:00
Girish Ramakrishnan 2236e07722 Send app up notification
Fixes #438
2019-02-11 12:58:33 -08:00
Girish Ramakrishnan b708eb94d2 Add app up event 2019-02-11 12:34:47 -08:00
Girish Ramakrishnan 5166cd788b More information 2019-02-11 09:30:46 -08:00
Girish Ramakrishnan 82c5531d04 render notification message as markdown 2019-02-10 23:11:14 -08:00
Girish Ramakrishnan e6f49b2d3b Add Email troubleshooting links 2019-02-10 21:04:42 -08:00
Girish Ramakrishnan de89d41e72 Make the notifications more informative 2019-02-10 21:00:32 -08:00
Girish Ramakrishnan 8ac97e2c8f Add help links in the backup ui 2019-02-10 17:05:11 -08:00
Johannes Zellner db7174b0f3 Fixup long tooltip in setup email field 2019-02-10 08:52:54 +01:00
Girish Ramakrishnan 3dd5526938 More 3.5.1 changes 2019-02-09 21:38:36 -08:00
Girish Ramakrishnan a88893b10a remove/inject backups secret fields
follow same pattern as dns code

fixes #615
2019-02-09 20:44:05 -08:00
Girish Ramakrishnan 51d1794e88 only inject fields if provider matches
atleast, the gcdns backend will crash otherwise
2019-02-09 17:59:32 -08:00
Girish Ramakrishnan 95e8fc73e6 Use black circle 2019-02-09 17:33:52 -08:00
Girish Ramakrishnan a47911048c use data.fqdn to show full domain name 2019-02-09 16:49:06 -08:00
Girish Ramakrishnan 5a2bdbf966 Fix link 2019-02-09 16:41:18 -08:00
Girish Ramakrishnan aa562228ef plural 2019-02-09 16:34:56 -08:00
Girish Ramakrishnan 98a70aedf2 Add doc links for zone name and cert provider 2019-02-09 10:17:01 -08:00
Johannes Zellner 96974ab439 Make secret placeholder just stars 2019-02-09 19:16:56 +01:00
Johannes Zellner 127b22d7ce Add dns interface api to inject hidden files for verification 2019-02-09 19:09:51 +01:00
Johannes Zellner ca962e635e Add provider netcup-image 2019-02-09 18:01:31 +01:00
Johannes Zellner a70cc97b8e namecheap apiKey is now token 2019-02-09 17:43:23 +01:00
Johannes Zellner 79ae75030c move caas certificate key removal to the provider backend 2019-02-09 11:59:37 +01:00
Johannes Zellner 32f8a52c2b add provider specific removePrivateFields to redact tokens and secrets 2019-02-09 11:59:37 +01:00
Johannes Zellner d1a1f7004b Do not send out emails for out of disk
We rely now on notifications. We should hover send emails about critical
new notifications. Lets make the admin go to the dashboard to check the
situation.
2019-02-09 11:57:31 +01:00
Girish Ramakrishnan 52289568bf backups: omit the key and secret fields
part of #615
2019-02-08 22:21:28 -08:00
Girish Ramakrishnan dada79cf65 domains: do not return secret keys in api responses
part of #615
2019-02-08 21:58:38 -08:00
Girish Ramakrishnan 139a2bac1a namecheap: apiKey -> token
all token/secret/credentials will not be returned in upcoming change
2019-02-08 20:48:51 -08:00
Girish Ramakrishnan 9b9da5664b namecheap: use token instead of ApiKey 2019-02-08 20:33:21 -08:00
Girish Ramakrishnan 3e4eaeab35 namecheap: do not use global object
if we have multiple namecheap, it doesn't work.
2019-02-08 20:21:16 -08:00
Girish Ramakrishnan 484171dd1b namecheap: typo 2019-02-08 19:09:28 -08:00
Girish Ramakrishnan 2f2314d2f8 Clarify 2019-02-08 14:54:24 -08:00
Girish Ramakrishnan 1c69b1695a lint 2019-02-08 11:24:33 -08:00
Girish Ramakrishnan 7cfba0e176 Fix notification tests 2019-02-08 11:22:15 -08:00
Girish Ramakrishnan ade2b65a94 make mail test pass 2019-02-08 11:08:14 -08:00
Girish Ramakrishnan 950a6d4c5d Add restriction on max password length 2019-02-08 09:57:07 -08:00
Girish Ramakrishnan 715ebf0747 Remove password max-length restriction
The backend has a limit of 256
2019-02-08 09:50:41 -08:00
Johannes Zellner bb0443b967 Attempt to parse the notification message as json and show accordingly 2019-02-08 14:05:31 +01:00
Johannes Zellner 2cf0b528f0 Ensure the notification badge has plenty of space 2019-02-08 14:05:31 +01:00
Girish Ramakrishnan 19348ef205 Fix links in motd 2019-02-07 14:07:30 -08:00
Girish Ramakrishnan 5662b124e0 Add a digitalocean-mp provider 2019-02-06 16:15:36 -08:00
Girish Ramakrishnan 6a95d481f0 Fix domain setup help links 2019-02-06 16:11:24 -08:00
Girish Ramakrishnan 5c1307f6f2 bump license years 2019-02-06 15:38:07 -08:00
Girish Ramakrishnan d281b21832 bump license year 2019-02-06 15:36:06 -08:00
Girish Ramakrishnan 2105b2ecdb Run MX and DMARC checks only if mail is enabled 2019-02-06 15:23:41 -08:00
Girish Ramakrishnan d05bf9396d Periodically check mail status as well
Fixes #612, #575
2019-02-06 14:58:45 -08:00
Girish Ramakrishnan 5b22822ac3 More 3.5.1 changes 2019-02-06 11:49:35 -08:00
Girish Ramakrishnan e08e1418e5 3.5.1 changes 2019-02-06 11:38:36 -08:00
Girish Ramakrishnan 31d0a5c40e run system checks immediately post activation
this will notify about backup configuration
2019-02-06 11:15:46 -08:00
Girish Ramakrishnan 89446d56e0 Fix exports 2019-02-06 11:09:34 -08:00
Johannes Zellner 1d5cf43e68 Remove unused style selector 2019-02-06 17:29:23 +01:00
Johannes Zellner 6d6b2300a8 Make danger color more popping 2019-02-06 17:28:01 +01:00
Johannes Zellner bbcad40fcf Also collect the real box logs from logfile on crash 2019-02-06 17:05:25 +01:00
Johannes Zellner 640ee55772 Handle notifications without an eventId 2019-02-06 16:33:57 +01:00
Johannes Zellner 70db169976 eventId in notifications may be null 2019-02-06 16:28:51 +01:00
Johannes Zellner 7ec12f487b Remove client side backup configuration checks 2019-02-06 15:48:35 +01:00
Johannes Zellner abc867935b Add backup configuration check together with out of disk check cron job 2019-02-06 15:47:56 +01:00
Johannes Zellner 2bb85dc16c Add out of disk and backup config warning notification handler 2019-02-06 15:47:31 +01:00
Johannes Zellner 00f4bf3d16 Add notificationdb.upsert() which clears ack field and matches by userId and title 2019-02-06 15:46:58 +01:00
Johannes Zellner 0cca838db9 Allow eventId in notifications table to be null 2019-02-06 14:40:09 +01:00
Girish Ramakrishnan abc8e1c377 improve motd a bit more 2019-02-05 16:58:24 -08:00
Girish Ramakrishnan de67b6bc0c better motd 2019-02-05 14:58:44 -08:00
Girish Ramakrishnan 058534af21 rename script 2019-02-05 10:27:05 -08:00
Girish Ramakrishnan ce1b621488 motd: add message to finish setup 2019-02-05 09:57:42 -08:00
Girish Ramakrishnan 4434c7862e Rename the fields variable 2019-02-05 09:24:16 -08:00
Johannes Zellner 63b42d64b1 Cleanup some code 2019-02-05 16:41:17 +01:00
Johannes Zellner 667506172a Do not rely on the whole app object in the event but use appId 2019-02-05 16:40:46 +01:00
Johannes Zellner 86c4246f75 Do not dump the whole app object into a login event 2019-02-05 16:13:20 +01:00
Johannes Zellner 7dc3fb9854 Only upsert login events 2019-02-05 15:27:43 +01:00
Johannes Zellner 71b0226c54 add more eventlog upsert tests 2019-02-05 14:50:59 +01:00
Johannes Zellner a18d5bbe34 Add eventlogdb.upsert() for batching once per day 2019-02-05 14:50:59 +01:00
Girish Ramakrishnan f1352c6ef0 Fix crash 2019-02-04 20:51:26 -08:00
Girish Ramakrishnan 7e6ce1a1ef Add event to track dashboard update 2019-02-04 20:42:28 -08:00
Girish Ramakrishnan 518bb74fbf Add dashboard domain update event 2019-02-04 20:24:23 -08:00
Girish Ramakrishnan 9f5471ee85 Update mail DNS records on dashboard switch
Fixes #613
2019-02-04 20:18:01 -08:00
Girish Ramakrishnan 9038538718 inform user about email records as well 2019-02-04 20:02:26 -08:00
Girish Ramakrishnan 3bf36d6c93 Add mail.configureMail 2019-02-04 17:10:07 -08:00
Girish Ramakrishnan 38523835fd parameterize the mailFqdn 2019-01-31 15:27:26 -08:00
Girish Ramakrishnan 5234f50453 Show email UI even if domain is disabled
This way when a user tries to delete a domain, he can still clear
the mailboxes.

Fixes cloudron/box##610
2019-01-31 12:24:27 -08:00
Johannes Zellner 4cb2a929a5 Remove unused require 2019-01-30 13:17:30 +01:00
Girish Ramakrishnan 1db14c710b always send emails from no-reply@dashboard domain
Fixes #614
2019-01-29 20:42:21 -08:00
Girish Ramakrishnan 13787629b6 suffix 0 when comparing versions
> semver.lte('1.2.3', '1.2.3-1')
false
2019-01-27 14:07:42 -08:00
Girish Ramakrishnan 42c705e362 UPDATE_CONFIG_KEY is unused 2019-01-25 15:59:05 -08:00
Girish Ramakrishnan 4765e4f83c Add locked flag to domains table 2019-01-25 14:45:45 -08:00
Girish Ramakrishnan ddffc8a36e better message 2019-01-25 14:11:38 -08:00
Girish Ramakrishnan 8aec71845b Add missing else 2019-01-25 10:49:00 -08:00
Girish Ramakrishnan c01864ccf5 mention outbound 2019-01-25 10:27:44 -08:00
Girish Ramakrishnan 6eabf73ece typo 2019-01-25 10:15:17 -08:00
Johannes Zellner 651d01564d Add link to docs when using namecheap for email 2019-01-25 13:39:42 +01:00
Girish Ramakrishnan 52cdec8d3c Pass the task id to stopTask 2019-01-24 15:56:17 -08:00
Girish Ramakrishnan 4f839ae44e better error message for outbound port 25 2019-01-24 15:09:14 -08:00
Girish Ramakrishnan db6404a7c6 SysInfo.EXTERNAL_ERROR is undefined 2019-01-24 14:58:28 -08:00
Girish Ramakrishnan 998c9bdeb7 clone: Do not send disabled ports
fixes cloudron/box#611
2019-01-24 10:06:00 -08:00
Johannes Zellner 93e0acc8e9 Only supply the actual namecheap DNS record arguments 2019-01-24 18:46:19 +01:00
Johannes Zellner 9fa7a48b86 Print result not error 2019-01-24 14:13:41 +01:00
Girish Ramakrishnan c0b929035f lint 2019-01-23 21:00:26 -08:00
Girish Ramakrishnan 318ee89e89 restore: Add missing exoscale region dropdown 2019-01-23 18:04:43 -08:00
Johannes Zellner 7612e38695 We do not send out invites on user creation 2019-01-23 17:18:37 +01:00
Johannes Zellner 47329eaebc Add tests for getting a single eventlog item 2019-01-23 17:11:57 +01:00
Johannes Zellner 031d7a1f18 Load eventlog details per notification 2019-01-23 17:04:28 +01:00
Johannes Zellner f53a951daf Add route to get single eventlog items 2019-01-23 16:44:45 +01:00
Johannes Zellner 2181137181 Use docker based mysql server for testing with the correct version 2019-01-23 16:18:52 +01:00
Johannes Zellner 6e925f6b99 assert if auditSource is null on user apis 2019-01-23 11:18:31 +01:00
Johannes Zellner 3b5495bf72 The notification rules have changed
We do not send out notifications and emails anymore for the user who
performs the action.
2019-01-23 11:10:30 +01:00
Johannes Zellner 3617432113 Fix broken invite sending on user creation 2019-01-23 10:45:13 +01:00
Girish Ramakrishnan f95beff6d4 Fix the tests 2019-01-22 17:49:53 -08:00
Girish Ramakrishnan 6d365fde14 move datalayout to separate file for tests 2019-01-22 17:35:36 -08:00
Girish Ramakrishnan b16ff33688 more changes 2019-01-22 11:39:19 -08:00
Girish Ramakrishnan 7424a226c9 Hide dataDir setting for this release
Let's keep this hidden till we fix the app repair issue
2019-01-22 11:38:53 -08:00
Girish Ramakrishnan 9d8d0bed38 Add mail domain after config is setup 2019-01-22 11:37:18 -08:00
Johannes Zellner 30a1997fd9 Add missing html bits 2019-01-22 20:03:26 +01:00
Johannes Zellner f967116087 We do not require sudo to migrate the db 2019-01-22 19:38:18 +01:00
Johannes Zellner 721352c5aa Revert "Check for sudo access of root user in cloudron-setup"
We will remove the sudo requirement instead

This reverts commit e5a04e8d38.
2019-01-22 19:33:36 +01:00
Johannes Zellner 778ea0b720 add namecheap dns provider to dns setup 2019-01-22 16:45:48 +01:00
Johannes Zellner 353517f9c6 Add hint about IP whitelisting for namecheap 2019-01-22 14:35:17 +01:00
Johannes Zellner 496ba986bf Add missing wait() function for namecheap backend 2019-01-22 12:12:46 +01:00
Johannes Zellner 101a3b24ce Fix property passing for namecheap.del() 2019-01-22 12:04:17 +01:00
Johannes Zellner 201dc570cd Fix namecheap nameserver test 2019-01-22 11:56:56 +01:00
Johannes Zellner e651b2ee13 Add namecheap to domain config 2019-01-22 11:26:24 +01:00
Johannes Zellner 018b3a876f We use eslint by now, so make it as happy as it can be 2019-01-22 10:54:03 +01:00
Girish Ramakrishnan 1b9586011e Fix twitter icon in restore UI 2019-01-21 11:56:37 -08:00
Girish Ramakrishnan ff359c477f acme: Wait for 5mins
often, let's encrypt is failing to get the new DNS. not sure why
2019-01-21 10:45:43 -08:00
Johannes Zellner 74cb8d9655 Bring namecheap dns backend up to speed with the new api layout 2019-01-21 14:36:21 +01:00
Johannes Zellner 91d0710e04 Update package lock file 2019-01-21 14:27:16 +01:00
Johannes Zellner 0cc3f08ae7 Add missing requires for scaleway sysinfo backend 2019-01-21 14:26:56 +01:00
Tomer S ac391bfc17 Added NameCheap as option for DNS 2019-01-21 12:59:08 +00:00
Johannes Zellner e5a04e8d38 Check for sudo access of root user in cloudron-setup 2019-01-21 13:33:19 +01:00
Johannes Zellner 8cc07e51bf Fix up notification tests 2019-01-21 08:51:26 +01:00
Girish Ramakrishnan 4b7090cf7c Be paranoid about the data dir location 2019-01-20 11:40:31 -08:00
Girish Ramakrishnan cb856ce2bb Fix error handling and tab focus 2019-01-19 22:08:29 -08:00
Girish Ramakrishnan 8c8cc035ab Generate fsmetadata correctly 2019-01-19 21:45:54 -08:00
Girish Ramakrishnan 4b93d30ec0 Send correct error message for dataDir conflict 2019-01-19 21:24:38 -08:00
Girish Ramakrishnan d8ff2488a3 Make syncer work with a layout 2019-01-19 20:39:49 -08:00
Johannes Zellner 8d3c1c9f9e Add more event types 2019-01-19 15:53:49 +01:00
Johannes Zellner b771df88da Ensure we write process crash logs to disk 2019-01-19 15:41:47 +01:00
Johannes Zellner 54e237cec8 Set info string if no crash logs can be found 2019-01-19 15:23:54 +01:00
Johannes Zellner b5c848474b Ensure notifications attached to events are deleted as well 2019-01-19 14:53:58 +01:00
Johannes Zellner dae52089e3 Patch auditSource if owner is creating himself an account 2019-01-19 14:34:49 +01:00
Johannes Zellner 4c4f3d04e9 Fix users tests 2019-01-19 14:25:59 +01:00
Johannes Zellner e8674487f2 Remove . makes it harder to doubleclick select and paste 2019-01-19 13:33:03 +01:00
Johannes Zellner e2fadebf64 Rename notifications.unexpectedExit() to notifications.processCrash() 2019-01-19 13:31:31 +01:00
Johannes Zellner d3331fea7f Send emails for apptask crash 2019-01-19 13:30:24 +01:00
Johannes Zellner bdcd9e035c Add missing eventId arg 2019-01-19 13:27:45 +01:00
Johannes Zellner 7f3453ce5c Crashnotifier is now only used for systemd unit crashes (only box) 2019-01-19 13:23:49 +01:00
Johannes Zellner ed7a7bc879 Use eventlog directly for apptask crashes 2019-01-19 13:23:18 +01:00
Johannes Zellner 5a6b8222df Pass down eventId to notifications 2019-01-19 13:22:29 +01:00
Johannes Zellner 3262486a96 Add eventId to notifications table 2019-01-19 13:21:09 +01:00
Johannes Zellner c73b30556f Remove unused require 2019-01-19 12:36:46 +01:00
Johannes Zellner 2ec89d6a20 Fix typo 2019-01-19 12:24:04 +01:00
Girish Ramakrishnan a0b69df20d Add DataLayout class to help with path xforms 2019-01-18 17:13:25 -08:00
Girish Ramakrishnan 1ec0f67b29 dataDir can be empty to revert back 2019-01-18 15:18:59 -08:00
Girish Ramakrishnan 57aa3de9bb typo 2019-01-18 15:18:46 -08:00
Girish Ramakrishnan 38a4c1aede Fixup volume management
Fixes related to removing directory and directory perms
2019-01-18 15:18:42 -08:00
Girish Ramakrishnan fcc77635c2 retry must wrap the download function as well 2019-01-18 14:31:30 -08:00
Girish Ramakrishnan 25be1563e1 Update mail container 2019-01-18 14:31:30 -08:00
Girish Ramakrishnan 4a9b0e8db6 Remove all app containers before removing volume
If volume location changes, we re-create the volume. However, volume
can only be removed if all the containers using it are deleted. For
example, the scheduler might be running a container using it.
2019-01-17 23:56:31 -08:00
Girish Ramakrishnan ab35821b59 saveFsMetadata: make it work with a layout 2019-01-17 14:55:37 -08:00
Girish Ramakrishnan 14439ccf77 mount points cannot be removed 2019-01-17 14:55:37 -08:00
Girish Ramakrishnan 5ddfa989d0 setupLocalStorage should remove old volume 2019-01-17 14:50:43 -08:00
Girish Ramakrishnan a915348b22 Return correct error code when already locked 2019-01-17 10:58:38 -08:00
Girish Ramakrishnan a7fe35513a Ubuntu 16 needs MemoryLimit
systemd[1]: [/etc/systemd/system/box.service:25] Unknown lvalue 'MemoryMax' in section 'Service'
2019-01-17 09:28:35 -08:00
Girish Ramakrishnan 093491c5b4 Make dataDir configurable 2019-01-17 09:21:38 -08:00
Johannes Zellner 56191d0cd9 Better text for app down eventlog item 2019-01-17 17:27:26 +01:00
Johannes Zellner 701024cf80 Send app down notification through eventlog 2019-01-17 17:26:58 +01:00
Johannes Zellner 7342268eb8 Support app oom in eventlog 2019-01-17 17:23:34 +01:00
Johannes Zellner 3a09cbf42b Add app oom event type 2019-01-17 15:49:53 +01:00
Johannes Zellner 4ecb0d82e7 Handle oom notification through eventlog 2019-01-17 15:31:34 +01:00
Johannes Zellner 5279be64d0 Skip notify performer or user operated on 2019-01-17 13:51:10 +01:00
Johannes Zellner b268368e3d Make linter happy 2019-01-17 13:26:47 +01:00
Johannes Zellner 59c8211c41 Do not show notification bubbles for notification items 2019-01-17 13:26:17 +01:00
Johannes Zellner 14560fff0a Hide notification action button 2019-01-17 13:21:54 +01:00
Johannes Zellner b9c3e85f89 Trigger user notifications through eventlog api only 2019-01-17 13:12:26 +01:00
Girish Ramakrishnan 8aaa671412 Add more changes 2019-01-16 21:52:02 -08:00
Girish Ramakrishnan 873ebddbd0 write admin config on dashboard switch 2019-01-16 21:51:06 -08:00
Girish Ramakrishnan 13c628b58b backups (tgz): work with a layout
this will allow us to place the localstorage directory in an arbitrary
location
2019-01-16 12:52:04 -08:00
Johannes Zellner adf3172ebb Speed up user listing by performing parallel requests 2019-01-16 14:27:32 +01:00
Johannes Zellner 4ead9cbf6a Remove leftover copynpasted string 2019-01-16 13:16:10 +01:00
Girish Ramakrishnan 3500236d32 sync concurrency cannot be very high 2019-01-15 20:44:09 -08:00
Girish Ramakrishnan 2f881c0c91 log download errors 2019-01-15 12:01:12 -08:00
Girish Ramakrishnan 0863dc785f Just pass through all the data 2019-01-15 11:13:04 -08:00
Girish Ramakrishnan 9d45e4e0ae refactor: make removeVolume not clear 2019-01-15 09:46:24 -08:00
Johannes Zellner 13fac3072d Support username search in user listing api 2019-01-15 17:21:40 +01:00
Johannes Zellner 342538358d add pagination and filter panel to users view 2019-01-15 13:30:42 +01:00
Johannes Zellner a8b79055ef Better fix for tooltip overflow 2019-01-15 13:30:42 +01:00
Girish Ramakrishnan 6d8fdb131f remove unused constant 2019-01-14 14:37:43 -08:00
Girish Ramakrishnan ee65089eb7 s3: make copying and uploading significantly faster 2019-01-14 13:47:07 -08:00
Girish Ramakrishnan 40c7d18382 Fix upload progress message 2019-01-14 12:23:03 -08:00
Girish Ramakrishnan 3236a9a5b7 backup: retry rsync file downloads
fixes #608
2019-01-14 11:57:10 -08:00
Girish Ramakrishnan d0522d7d4f backups: retry tgz downloads
Part of #608
2019-01-14 11:36:11 -08:00
Girish Ramakrishnan aef6b32019 Update mail container with the spf fixes 2019-01-14 10:32:55 -08:00
Girish Ramakrishnan 11b4c886d7 Add changes 2019-01-14 09:58:55 -08:00
Girish Ramakrishnan ec3be4c36a s3: Add Paris/Stockholm/Osaka 2019-01-14 09:57:50 -08:00
Girish Ramakrishnan 0a2ef0e041 update events in activitiy view 2019-01-14 09:29:00 -08:00
Johannes Zellner e7b623ea16 Use bootstrap tooltips in users view 2019-01-14 17:02:36 +01:00
Johannes Zellner 87777017a0 Ensure tooltips don't wrap text 2019-01-14 17:02:23 +01:00
Johannes Zellner bf2c7a18d1 Until the ui supports full pagination list up to 1k users 2019-01-14 16:57:41 +01:00
Johannes Zellner 3470252768 Add user pagination to rest api 2019-01-14 16:39:20 +01:00
Johannes Zellner 1a3d5d0bdc Fix linter issues 2019-01-14 16:26:27 +01:00
Johannes Zellner 05f07b1f47 Add paginated user listing on the db level 2019-01-14 16:08:55 +01:00
Girish Ramakrishnan 898f1dd151 Make volume logic work with absolute paths 2019-01-13 21:12:22 -08:00
Girish Ramakrishnan 17ac6bb1a4 script is not called from redis addon anymore 2019-01-13 19:04:32 -08:00
Girish Ramakrishnan f05bed594b remove redundant assert 2019-01-13 16:06:54 -08:00
Girish Ramakrishnan e63b67b99e resolve any boxdata symlink 2019-01-13 15:17:02 -08:00
Girish Ramakrishnan b5505bcd87 Fixup restore eventlog 2019-01-13 14:54:19 -08:00
Girish Ramakrishnan efbc045c8a Add event for tracking dyndns changes 2019-01-12 15:24:22 -08:00
Girish Ramakrishnan 172d4b7c5e backup: store cleanup result properly 2019-01-12 15:17:04 -08:00
Girish Ramakrishnan bdf9fbae71 Fixup text 2019-01-12 10:08:32 -08:00
Girish Ramakrishnan 04c1afc9ce Add dyndns event 2019-01-12 09:58:30 -08:00
Girish Ramakrishnan 8b9177b484 disallow downgrade of App Store apps
We hit this interesting case:

1. Dashboard showed update indicator for an app of v1. indicator is saying v2 is available.
2. In the meantime, the cron updated the app from v1 to v2 and then to v3 (i.e updates applied)
3. Dashboard for whatever reason (internet issues/laptop suspend) continues to show v2 update indicator.
   This is despite the update logic clearing the update available notification.
4. Use clicked updated indicator on the updated app. App updates to an old version v2!
2019-01-11 14:19:32 -08:00
Girish Ramakrishnan 2acb065d38 Track what the the backup cleaner removed 2019-01-11 14:09:43 -08:00
Girish Ramakrishnan 0b33b0b6a2 task: result can be json 2019-01-11 14:02:18 -08:00
Girish Ramakrishnan 0390891280 Fix test 2019-01-11 13:36:02 -08:00
Girish Ramakrishnan 9203534f67 get app object in start of update func 2019-01-11 13:28:39 -08:00
Girish Ramakrishnan 458c51bdaa Improve eventlog messages 2019-01-11 12:48:51 -08:00
Girish Ramakrishnan e15d11a693 eventlog: add the old and new manifest in restore 2019-01-11 12:27:42 -08:00
Girish Ramakrishnan c021d3d9ce backup: add retry only if > 1 2019-01-11 11:07:19 -08:00
Girish Ramakrishnan ea3cc9b153 Fix error message 2019-01-11 10:58:51 -08:00
Girish Ramakrishnan 3612b64dae gpg is in different packages in ubuntu 2019-01-11 10:20:28 -08:00
Girish Ramakrishnan 79f9180f6b run backup cleanup as a task 2019-01-10 16:07:06 -08:00
Girish Ramakrishnan 766ef5f420 remove spurious argument 2019-01-10 16:02:15 -08:00
Girish Ramakrishnan 90a736ba43 mailboxes: owner may not exist 2019-01-10 14:25:08 -08:00
Girish Ramakrishnan bdbb9acfd0 lint 2019-01-10 10:51:31 -08:00
Johannes Zellner 6bdac3aaec Add missing -y in cloudron-setup 2019-01-10 15:28:56 +01:00
Johannes Zellner 661ce4fc1d Ensure we callback if the request was killed by the browser 2019-01-10 14:37:43 +01:00
Johannes Zellner 14acdbe7d1 Use notifications api for unexpected process exits 2019-01-10 14:30:00 +01:00
Johannes Zellner 895280fc79 Remove unused function mailUserEventToAdmins() 2019-01-10 13:32:39 +01:00
Johannes Zellner b764f1c861 For now make the notification bubble action go to notification view 2019-01-10 13:29:59 +01:00
Johannes Zellner 83ae303b31 Skip notifications for user actions against the same user 2019-01-10 13:21:26 +01:00
Johannes Zellner cc81a10dd2 Add more notification/mailer wrapper 2019-01-10 12:00:04 +01:00
Girish Ramakrishnan 6e3600011b Update mail container sha 2019-01-09 16:31:53 -08:00
Girish Ramakrishnan 2b07b5ba3a Add mail container that logs events 2019-01-09 16:18:53 -08:00
Girish Ramakrishnan 7b64b2a708 do-spaces: Limit download concurrency
https://www.digitalocean.com/community/questions/rate-limiting-on-spaces?answer=40441
2019-01-09 15:09:29 -08:00
Johannes Zellner 182949d8d2 Skip already acknowledged notifications on clear 2019-01-09 17:36:33 +01:00
Johannes Zellner a879bdeb47 Ensure busy states are reflected in the ui 2019-01-09 17:26:44 +01:00
Johannes Zellner 9c66a4ef4e Rework the notification style now that it is in its own view 2019-01-09 17:16:41 +01:00
Johannes Zellner d2d75b8e41 Move notifications into a separate view 2019-01-09 15:18:10 +01:00
Girish Ramakrishnan e36c15f770 lint 2019-01-08 20:46:39 -08:00
Girish Ramakrishnan 8dc6da2b7a Escape html tags
In streaming view, logs like <foo@bar.com> was not appearing
2019-01-08 19:49:52 -08:00
Girish Ramakrishnan d3ae252740 Use the smart host term 2019-01-08 14:53:23 -08:00
Girish Ramakrishnan 810f5e7409 Fix line param parsing
lines is a positive integer or -1 to disable line limiting. The
default value is 10 if no argument is given.

Fixes #604
2019-01-08 13:23:29 -08:00
Girish Ramakrishnan 29f48bcba6 Use -1 to download full logs
Part of cloudron/box#604
2019-01-08 13:13:39 -08:00
Girish Ramakrishnan e6fe5adca7 Use lines argument 2019-01-08 13:12:37 -08:00
Girish Ramakrishnan 1affb2517a Protect the updater service from the oom killer
Fixes #576
2019-01-08 10:51:47 -08:00
Girish Ramakrishnan 82a96ec91d Keep it alphabetical 2019-01-08 10:24:16 -08:00
Johannes Zellner 85ea9b3255 Rework the oom notification 2019-01-08 14:37:58 +01:00
Johannes Zellner db02cbb575 Always refresh notifications 2019-01-08 14:33:47 +01:00
Johannes Zellner 749dd20704 Poll for new notifications every 10sec 2019-01-08 14:08:29 +01:00
Johannes Zellner b9db6040f4 Show label if no new notifications exist 2019-01-08 13:49:21 +01:00
Johannes Zellner 07e052b865 Fix notifications route to return all notifications if nothing specified 2019-01-08 13:46:18 +01:00
Johannes Zellner c9628c0f75 Do not show ack button on old notifications 2019-01-08 13:45:49 +01:00
Johannes Zellner 979af88a40 Make notification badge a friendlier green 2019-01-08 13:45:49 +01:00
Johannes Zellner 98b4cd330f Add button to show older notifications 2019-01-08 13:45:40 +01:00
Johannes Zellner 5ab390c3db Show notification time 2019-01-08 13:24:05 +01:00
Johannes Zellner 71eaf9966f Improve notification view layout and add relevant actions 2019-01-08 13:18:35 +01:00
Johannes Zellner 9653d07ae2 Rename activity log to eventlog 2019-01-08 12:42:03 +01:00
Johannes Zellner f1663d0fbf Do not make notifications persistent 2019-01-08 12:41:52 +01:00
Johannes Zellner 38cb2201a9 Update toplevel notification status 2019-01-08 12:36:08 +01:00
Girish Ramakrishnan bc0ea740f1 Add more changes 2019-01-07 09:43:48 -08:00
Johannes Zellner fa04bea64b List unread notifications in accounts view 2019-01-07 18:05:02 +01:00
Johannes Zellner 2bc66af55d Add notification ack api wrapper 2019-01-07 18:04:52 +01:00
Johannes Zellner db5892d0ae Make linter happy 2019-01-07 17:34:10 +01:00
Johannes Zellner 841b4aa814 Can't pass booleans over query 2019-01-07 17:30:28 +01:00
Johannes Zellner 59c7c1e302 Use the new notification onClick api in places 2019-01-07 17:30:01 +01:00
Johannes Zellner 48f63ec761 Update angular-ui-notification and show unread notifications 2019-01-07 17:23:26 +01:00
Johannes Zellner 9989478b91 Add all admins action helper 2019-01-07 14:56:49 +01:00
Johannes Zellner d3227eceff Give better oom notification title 2019-01-07 14:05:42 +01:00
Johannes Zellner 5f71f6987c Create notifications for app down event 2019-01-07 13:01:27 +01:00
Johannes Zellner 86dbb1bdcf Create notification for oom events 2019-01-07 12:57:57 +01:00
Girish Ramakrishnan 77ac8d1e62 Add changes 2019-01-06 19:23:44 -08:00
Girish Ramakrishnan e62d417324 Set OOMScoreAdjust to stop box code from being killed
OOMScoreAdjust can be set between -1000 and +1000. This value is inherited
and systemd has no easy way to control this for children (box code also
runs as non-root, so it cannot easily set it for the children using
/proc/<pid>/oom_score_adj.

When set to -1000 and the process reaches the MemoryMax, it seems the kernel
does not kill any process in the cgroup and it spins up in high memory. In fact,
'systemctl status <service>' stops displaying child process (but ps does), not sure
what is happenning.

Keeping it -999 means that if a child process consumed a lot of memory, the kernel
will kill something in the group. If the main box itself is killed, systemd will
kill it at all because of KillMode=control-group.

Keeping it -999 also saves box service group being killed relative to other docker
processes (apps and addons).

Fixes #605
2019-01-06 19:16:53 -08:00
Girish Ramakrishnan 4051e34e20 Fix text 2019-01-06 16:25:25 -08:00
Girish Ramakrishnan 428bd43d60 Fix change dashboard domain UI issues 2019-01-06 16:02:05 -08:00
Girish Ramakrishnan 67415ff715 Check if scope is already destroyed 2019-01-06 15:29:38 -08:00
Girish Ramakrishnan b8f85837fb cloudflare: do not wait for dns if proxied 2019-01-05 18:27:10 -08:00
Girish Ramakrishnan 2237d7ef8a Fix test 2019-01-05 00:45:01 -08:00
Girish Ramakrishnan 65210ea91d rework dns api to take domainObject
the DNS backends require many different params, it's just easier to
pass them all together and have backends do whatever.

For example, route53 API requires the fqdn. Some other backends require just the
"part" to insert.

* location - location in the database (where app is installed)
* zoneName - the dns zone name
* domain - domain in the database (where apps are installed into)
* name/getName() - this returns the name to insert in the DNS based on zoneName/location
* fqdn - the fully resolved location in zoneName

verifyDnsConfig also takes a domain object even if it's not in db just so that we can
test even existing domain objects, if required. The IP param is removed since it's not
required.

for caas, we also don't need the fqdn hack in dnsConfig anymore
2019-01-04 22:38:12 -08:00
Girish Ramakrishnan fbc494abc9 Hello 2019! 2019-01-04 19:37:51 -08:00
Girish Ramakrishnan 16c1622b1f Make domains.fqdn take config and domain separately
This way it can be used in the dns backends which don't have the domain object
2019-01-04 14:11:29 -08:00
Girish Ramakrishnan 635557ca45 Fix failing tests 2019-01-04 10:56:56 -08:00
Johannes Zellner b9daa62ece Add notification tests for business logic 2019-01-04 17:13:52 +01:00
Girish Ramakrishnan 808be96de3 gpg is not installed on gandi 2019-01-03 12:28:30 -08:00
Girish Ramakrishnan 1e93289f23 cloudflare: preserve proxied parameter 2019-01-03 10:42:09 -08:00
Girish Ramakrishnan ccf0f84598 cloudflare: getDnsRecordsByZoneId -> getDnsRecords
This misleading name creates much confusion
2019-01-03 10:39:10 -08:00
Girish Ramakrishnan 3ec4c7501d cloudflare: rename confusing callback param 2019-01-03 10:39:10 -08:00
Girish Ramakrishnan f55034906c Set oldConfig.fqdn
Without this, the re-configure task unregisters the domain since
it thinks the domain has changed
2019-01-03 10:08:55 -08:00
Girish Ramakrishnan cbd3c60c5d Use a relay token for no-reply emails 2018-12-28 13:32:59 -08:00
Girish Ramakrishnan 2037fec878 new mail container does not require default domain 2018-12-28 12:12:34 -08:00
Girish Ramakrishnan 772fd1b563 Add cloudron-support to path 2018-12-26 19:42:45 -08:00
Girish Ramakrishnan d9309cb215 Use a separate event for tarExtract 2018-12-22 21:23:20 -08:00
Girish Ramakrishnan 433c34e4ce better debugs 2018-12-22 21:23:17 -08:00
Girish Ramakrishnan 68a4769f1e Fix typo 2018-12-22 19:53:50 -08:00
Girish Ramakrishnan 248569d0a8 awscli is unused 2018-12-21 12:41:43 -08:00
Girish Ramakrishnan 5146e39023 contabo: fix DNS
we disable the DNS servers in initializeBaseImage. On normal VPS,
unbound seems to start by itself but on contabo it doesn't because
the default unbound config on ubuntu does not work without ip6
2018-12-21 11:44:39 -08:00
Girish Ramakrishnan ecd1d69863 install software-properties-common
on contabo,

root@vmi232343:~# add-apt-repository

Command 'add-apt-repository' not found, but can be installed with:

apt install software-properties-common
2018-12-21 11:28:21 -08:00
Girish Ramakrishnan 06219b0c58 add contabo 2018-12-21 11:09:20 -08:00
Girish Ramakrishnan 0a74bd1718 add note on saveFsMetadata 2018-12-20 15:11:15 -08:00
Girish Ramakrishnan 8a5b24afff Make tarPack and tarExtract have consistent style 2018-12-20 11:49:37 -08:00
Girish Ramakrishnan 6bdd7f7a57 Give more memory to the control group
this allows backups to take more memory as part of the systemd group.
the node box code itself runs under little more constraints using
--max_old_space_size=150
2018-12-20 10:44:42 -08:00
Girish Ramakrishnan 1bb2552384 move feedback test 2018-12-19 14:32:54 -08:00
Girish Ramakrishnan b5b20452cc Fix reverseProxy.getCertificate API 2018-12-19 14:20:48 -08:00
Girish Ramakrishnan 4a34703cd3 rework code to enable/disable remote support
we had a generic ssh key management api. this was causing issues because
the ssh format is more complicated than what we had implemented. currently,
the only use case we have is to add our ssh key.

Fixes #600
2018-12-19 13:35:20 -08:00
Girish Ramakrishnan 0816af3cf1 Use new support API
Part of cloudron/box#600
2018-12-19 13:27:59 -08:00
Girish Ramakrishnan a8d9b57c47 remove unused tar.js 2018-12-19 11:58:08 -08:00
Girish Ramakrishnan bb575fff5b Fix feedback API route 2018-12-19 10:58:50 -08:00
Girish Ramakrishnan 52bbf3be21 move support to separate file 2018-12-19 10:54:33 -08:00
Girish Ramakrishnan 3bde0666e2 volume -> app data directory
the appdata directory is just a place to "hold" various parts
of an app together for backup purposes
2018-12-18 21:16:25 -08:00
Girish Ramakrishnan b5374a1f90 3.5 changes 2018-12-18 15:33:36 -08:00
Girish Ramakrishnan cbe632839c Add UI to switch domain 2018-12-18 15:27:26 -08:00
Girish Ramakrishnan 18b8d23148 Add progress percent for prepareDashboardDomain 2018-12-18 15:26:37 -08:00
Girish Ramakrishnan f51b1e1b6b installationProgress must contain the percent 2018-12-17 15:42:40 -08:00
Johannes Zellner ffc4f9d930 Fix typo 2018-12-17 17:40:53 +01:00
Johannes Zellner 5680fc839b Send new user notification via notifications api 2018-12-17 17:35:19 +01:00
Johannes Zellner 57d435ccf4 Add basic notification rest api 2018-12-17 16:37:19 +01:00
Johannes Zellner 4b90b8e6d8 Add notificationdb tests 2018-12-17 15:53:00 +01:00
Johannes Zellner fc8dcec2bb Add notificationdb table and db wrapper 2018-12-17 15:52:52 +01:00
Girish Ramakrishnan a5245fda65 3.4.3 changes
(cherry picked from commit fd723cf7eb)
2018-12-16 21:08:07 -08:00
Girish Ramakrishnan 4eec2a6414 Add LDAP_MAILBOXES_BASE_DN
this got removed by mistake in the email refactor assuming this
was unused (but it is used by sogo)

(cherry picked from commit 6589ba0988)
2018-12-16 21:06:52 -08:00
Girish Ramakrishnan a536e9fc4b track last oom time using a global variable
because it was a local variable, we were just sending out oom mails
like crazy

also, fixes an issue that if docker.getEvents gets stuck because
docker does not respond then we do not do any health monitoring.
i guess this can happen if the docker API gets stuck.
2018-12-16 20:52:42 -08:00
Girish Ramakrishnan 7c972758af Show progress message in setup and restore 2018-12-16 11:04:25 -08:00
Girish Ramakrishnan a961407379 Fix setup and restore to have a task style API 2018-12-16 11:02:49 -08:00
Girish Ramakrishnan 1fd6c363ba 3.4.2 changes
(cherry picked from commit 2d7f0c3ebe)
2018-12-15 09:35:35 -08:00
Girish Ramakrishnan 236f66f56f Fix create invite post request
(cherry picked from commit 0688c272c2)
2018-12-15 09:28:35 -08:00
Girish Ramakrishnan 0a7f1faad1 Better progress message 2018-12-14 23:20:32 -08:00
Girish Ramakrishnan e79d963802 do not append to task log file 2018-12-14 22:22:57 -08:00
Girish Ramakrishnan 1b4bbacd5f 3.4.1 changes
(cherry picked from commit a66bc7192d)
2018-12-14 22:22:47 -08:00
Girish Ramakrishnan a485df2f79 Fix usage of webadminStatus 2018-12-14 16:34:57 -08:00
Girish Ramakrishnan 54b9154457 post requires extra data argument
broken by e6ad14f8
2018-12-14 16:33:10 -08:00
Girish Ramakrishnan 447c6fbb5f cloudron.conf has to writable 2018-12-14 16:32:51 -08:00
Girish Ramakrishnan 78acaccd89 wording 2018-12-14 16:32:51 -08:00
Girish Ramakrishnan bdf9671280 Split dashboard dns setup and db operations
The dns setup is now a task that we can wait on. Once that task
is done, we can do db operations to switch the domain in a separate
route
2018-12-14 09:57:28 -08:00
Girish Ramakrishnan 357e44284d Write nginx config into my.<domain>.conf
This way we can switch the domain as an independent task that does
not affect the existing admin conf
2018-12-14 09:20:10 -08:00
Girish Ramakrishnan 9dced3f596 Add domains.setupAdminDnsRecord 2018-12-14 09:20:10 -08:00
Girish Ramakrishnan 63e3560dd7 on startup, only re-generate the admin config
should not try to get certificates on startup
2018-12-14 09:20:06 -08:00
Girish Ramakrishnan 434525943c move appconfig.ejs 2018-12-13 21:53:31 -08:00
Girish Ramakrishnan f0dbf2fc4d Make reverseProxy.configureAdmin not use config
This way we can set things up before modifying config for dashboard switch
2018-12-13 21:42:48 -08:00
Girish Ramakrishnan 3137dbec33 CONFIG_DIR is not used anymore 2018-12-13 19:55:13 -08:00
Girish Ramakrishnan 37aabcee4f Show the renew certificates header 2018-12-13 15:54:06 -08:00
Girish Ramakrishnan e71a8fce47 add test list tasks 2018-12-13 13:12:45 -08:00
Girish Ramakrishnan b2d18560be this is handled by the managed case 2018-12-13 10:52:08 -08:00
Girish Ramakrishnan 1429aa1edc more caas removal 2018-12-13 10:50:37 -08:00
Girish Ramakrishnan ff550e897a caas: remove box plan change routes 2018-12-13 09:41:52 -08:00
Girish Ramakrishnan 5d4f942d46 remove caas plan change UI 2018-12-13 09:36:21 -08:00
Johannes Zellner 30ea7e854d Fix wording 2018-12-13 13:58:08 +01:00
Johannes Zellner 10034fcbba Function is called tasks.removePrivateFields 2018-12-13 13:50:53 +01:00
Girish Ramakrishnan 36f8ce453f No need to reserve .app suffix 2018-12-12 15:07:49 -08:00
Girish Ramakrishnan c2e40acb2c Fixup configuration and validation of mailboxName 2018-12-12 14:40:26 -08:00
Johannes Zellner 907f82338e Fix twitter logo on setup screens 2018-12-12 08:49:28 +01:00
Girish Ramakrishnan 82b1bb668d Fix tests 2018-12-11 16:26:19 -08:00
Girish Ramakrishnan 935a8258a6 task API: remove arg from response
it can contain sensitive information
2018-12-11 16:22:53 -08:00
Girish Ramakrishnan fa483e5806 rename to listByTypePaged 2018-12-11 16:14:07 -08:00
Girish Ramakrishnan e0c9658cb9 setup -> provision 2018-12-11 15:29:47 -08:00
Girish Ramakrishnan 0266a46b32 Ensure that location and domain are provided together
in our db, {location,domain} is unique. If we replace them one
by one in the database, it will cause conflicts.
2018-12-11 12:10:22 -08:00
Girish Ramakrishnan dcb0160b64 Remove blank line 2018-12-11 11:04:36 -08:00
Girish Ramakrishnan e7294f2950 Make handleCertChanged take a callback 2018-12-11 11:02:32 -08:00
Girish Ramakrishnan fccd7fa438 Add a progress bar for the renewal task 2018-12-11 10:55:32 -08:00
Girish Ramakrishnan c9f325e75d renewCerts does not call callback 2018-12-11 10:49:04 -08:00
Girish Ramakrishnan c39711a87e Remove unused fields 2018-12-11 10:43:02 -08:00
Johannes Zellner a8de003cf0 Remove obsolete js-update gulp task 2018-12-11 19:25:26 +01:00
Johannes Zellner 6db54fc3b5 remove uglifier
The resulting code was actually a tiny bit larger
2018-12-11 19:25:26 +01:00
Girish Ramakrishnan d058536011 Fix indent 2018-12-11 10:19:13 -08:00
Girish Ramakrishnan 02ad4ba98d return taskId in Client.renewCerts 2018-12-11 10:19:13 -08:00
Girish Ramakrishnan 0fa353c2e2 return taskId for renewCerts 2018-12-11 10:16:38 -08:00
Johannes Zellner a68a76112c Fix eventlog usage 2018-12-11 19:03:42 +01:00
Girish Ramakrishnan 975c545081 Make it a separate section 2018-12-11 10:00:56 -08:00
Johannes Zellner fcfee9082b assert if the rest wrappers are misused 2018-12-11 18:55:25 +01:00
Girish Ramakrishnan c7da090882 tasks: remove auditSource from start/stop 2018-12-11 09:22:13 -08:00
Johannes Zellner e6ad14f8d4 Rework the rest wrapper usage and add offline banner 2018-12-11 18:17:53 +01:00
Johannes Zellner ee609c8ef0 renew certs task also needs an auditSource 2018-12-11 13:10:32 +01:00
Johannes Zellner 1670f15732 Use toplevel cert renewal api for all domains 2018-12-11 12:41:42 +01:00
Johannes Zellner 6891ce2bc8 Fix typos 2018-12-11 12:33:35 +01:00
Johannes Zellner 94f5adba04 Renew certs is a POST route so lets use the body 2018-12-11 11:55:59 +01:00
Johannes Zellner b8f843993a Fix typo 2018-12-11 11:26:45 +01:00
Girish Ramakrishnan f9add21899 Add task route tests 2018-12-10 21:42:03 -08:00
Girish Ramakrishnan 1277da8bfe Add tasks test 2018-12-10 21:17:30 -08:00
Girish Ramakrishnan 55650fb734 Fix crash when db got cleared 2018-12-10 20:56:38 -08:00
Girish Ramakrishnan d2f4b68c9f Make certificate renewal a task 2018-12-10 20:48:10 -08:00
Girish Ramakrishnan a76731a991 remove old cloudron.conf and version field 2018-12-10 15:36:00 -08:00
Johannes Zellner 5cd696792b Improve inline update progress layout 2018-12-10 16:50:40 +01:00
Johannes Zellner fbc399f5fa sort services by name 2018-12-10 11:36:47 +01:00
Johannes Zellner 3d6413ae05 Finalize rename addon -> service 2018-12-10 11:36:47 +01:00
Girish Ramakrishnan 97120a6b04 Fixup update UI to use task id 2018-12-09 12:06:28 -08:00
Girish Ramakrishnan 536b8166ce typo 2018-12-09 12:04:51 -08:00
Johannes Zellner 226162ee57 Give backup progress detail more horizontal space 2018-12-09 21:01:46 +01:00
Johannes Zellner a888ec265f Fix backup progress display layout 2018-12-09 20:59:32 +01:00
Girish Ramakrishnan d43106b0af Add taskworker that runs funcs out of process 2018-12-09 10:06:22 -08:00
Girish Ramakrishnan 3688371ce8 Make tasks log to their own log file 2018-12-08 21:59:20 -08:00
Girish Ramakrishnan 6fb7555f01 fix task logs 2018-12-08 21:58:23 -08:00
Girish Ramakrishnan a8d0e25866 Update task status by id 2018-12-08 21:17:36 -08:00
Girish Ramakrishnan 6d66eb7759 Various fixes 2018-12-08 21:12:49 -08:00
Girish Ramakrishnan 8502bf4bfa tasks: add route to list tasks 2018-12-08 20:18:20 -08:00
Girish Ramakrishnan d8225ad653 Make tasks indexed by id instead of type
The caas migrate logic is broken at this point until it uses new
task framework
2018-12-08 19:41:53 -08:00
Girish Ramakrishnan cfb68a0511 setAdmin -> setDashboardDomain 2018-12-08 18:19:49 -08:00
Girish Ramakrishnan 76677e0aea Fix response 2018-12-07 16:39:22 -08:00
Girish Ramakrishnan 515ee891d3 refactor code to allow admin domain to be set 2018-12-07 16:15:21 -08:00
Girish Ramakrishnan 3aea1f3c9d Fix error message 2018-12-07 15:41:02 -08:00
Girish Ramakrishnan 8d944f9a4a Allow setup to be run again as long as not-activated
this is useful if the activation fails somewhere mid-way and we don't
need to re-setup the cloudron all over
2018-12-07 15:11:25 -08:00
Girish Ramakrishnan 331c8ae247 Add a new line 2018-12-07 11:28:23 -08:00
Girish Ramakrishnan c71a429f61 Ask user before reboot
this is useful when installing on bare metal, don't want to reboot
server since the instructions get lost
2018-12-07 11:12:45 -08:00
Girish Ramakrishnan 3bad9e523c Add option to toggle app automatic updates 2018-12-07 10:02:11 -08:00
Girish Ramakrishnan 970f7fe69b Add flag for per-app automatic update 2018-12-07 09:38:55 -08:00
Girish Ramakrishnan c507df902e create recvmail mailbox automatically 2018-12-06 22:31:38 -08:00
Girish Ramakrishnan dfa61f1b2d rework how app mailboxes are allocated
Our current setup had a mailbox allocated for an app during app
install (into the mailboxes table). This has many issues:

* When set to a custom mailbox location, there was no way to access
  this mailbox even via IMAP. Even when using app credentials, we
  cannot use IMAP since the ldap logic was testing on the addon type
  (most of our apps only use sendmail addon and thus cannot recvmail).

* The mailboxes table was being used to add hidden 'app' type entries.
  This made it very hard for the user to understand why a mailbox conflicts.
  For example, if you set an app to use custom mailbox 'blog', this is
  hidden from all views.

The solution is to let an app send email as whatever mailbox name is
allocated to it (which we now track in the apps table. the default is in the
db already so that REST response contains it). When not using
Cloudron email, it will just send mail as that mailbox and the auth
checks the "app password" in the addons table. Any replies to that
mailbox will end up in the domain's mail server (not our problem).

When using cloudron email, the app can send mail like above. Any responses
will not end anywhere and bounce since there is no 'mailbox'. This is the
expected behavior. If user wants to access this mailbox name, he can
create a concrete mailbox and set himself as owner OR set this as
an alias.

For apps using the recvmail addon, the workflow is to actually create
a mailbox at some point. Currently, we have no UI for this 'flow'.
It's fine because we have only meemo using it.

Intuitive much!
2018-12-06 22:13:32 -08:00
Girish Ramakrishnan 7fa5ef8165 Do not filter out app mailboxes 2018-12-06 21:55:04 -08:00
Girish Ramakrishnan 6331fa5ced Update mail addon (does not use ownerType) 2018-12-06 20:34:18 -08:00
Girish Ramakrishnan 707b03b8c8 mailbox: ownerType is now purely internal 2018-12-06 20:25:24 -08:00
Girish Ramakrishnan f2f93ed141 ldap: nobody binds to mailboxes 2018-12-06 19:34:25 -08:00
Girish Ramakrishnan 37e16c7a4c Force owner type to be user 2018-12-06 13:00:57 -08:00
Girish Ramakrishnan 41b0c3242e Make function name clearer 2018-12-06 12:47:50 -08:00
Girish Ramakrishnan 48ed051edf Use list verb 2018-12-06 10:23:10 -08:00
Girish Ramakrishnan 92cb768c4b Fix reboot message 2018-12-06 10:12:21 -08:00
Girish Ramakrishnan 502642fd25 Add note on why we need universe 2018-12-06 09:32:02 -08:00
Johannes Zellner 8ec406c2e0 Hide empty memory usage bar for unsupported services 2018-12-06 14:32:39 +01:00
Johannes Zellner 4abe6a7a00 Ensure we have universe apt sources enabled 2018-12-06 13:23:30 +01:00
Girish Ramakrishnan 3f8fa64b98 wildcard must be outside the quotes 2018-12-05 16:39:29 -08:00
Johannes Zellner 9473c108f0 Support unbound logs in logviewer 2018-12-05 16:22:43 +01:00
Johannes Zellner 527ff1b1fb Support docker and unbound service logs through journalctl 2018-12-05 16:19:10 +01:00
Girish Ramakrishnan 804467dce2 StandardOutput=file does not work in ubuntu 16
ubuntu 16 has systemd 229 which does not support this. ubuntu 18
has systemd 239 which works ok
2018-12-04 15:02:48 -08:00
Girish Ramakrishnan 14c43d9f7e Show error message directly 2018-12-04 14:12:35 -08:00
Girish Ramakrishnan ce9a03a5a8 Check updateStatus on ready 2018-12-04 14:05:55 -08:00
Girish Ramakrishnan 4d7f308821 translate TaskError to UpdateError 2018-12-04 14:04:43 -08:00
Girish Ramakrishnan a5b8418845 Remove spurious success return 2018-12-04 09:34:00 -08:00
Johannes Zellner 04e8b14fc4 Give more space in the error page 2018-12-04 16:35:58 +01:00
Johannes Zellner 93d428b8c5 Update cron node module 2018-12-04 14:53:08 +01:00
Johannes Zellner 7c424ad60c Add netcup as provider 2018-12-04 09:51:40 +01:00
Girish Ramakrishnan 5b29a8680d Add missing callback 2018-12-03 15:23:26 -08:00
Girish Ramakrishnan 8f57c44837 provision: force http1.1
for unknown reasons, we get a http2 framing error from curl at times.
2018-12-03 13:29:43 -08:00
Johannes Zellner b23939127b Ensure we always set the correct default value for TIMESTAMP types
So far it we rely on 0 default values in some case like the eventlog
This will not work in mysql strict mode with https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_zero_date
2018-12-03 14:09:57 +01:00
Johannes Zellner 3196322063 Add migration script to rename groups table to userGroups 2018-12-03 12:24:04 +01:00
Johannes Zellner 54c96d98d1 Remove all individual test timeouts and ignore timeouts toplevel 2018-12-03 12:24:04 +01:00
Johannes Zellner f5f92fbb03 Rename groups table to userGroups 2018-12-03 12:24:04 +01:00
Girish Ramakrishnan be0876603c ADDON_STATUS_* -> SERVICE_STATUS_* 2018-12-02 19:40:27 -08:00
Girish Ramakrishnan 7c1ef143f9 Add unbound service 2018-12-02 19:38:34 -08:00
Girish Ramakrishnan 6d128595e7 all container related functionality is 'service' 2018-12-02 19:12:43 -08:00
Girish Ramakrishnan 2f55abfc60 Fixup logs routes as well 2018-12-02 19:07:12 -08:00
Girish Ramakrishnan 43b747676c addon -> service
some day we will also add nginx, unbound etc here
2018-12-02 18:55:05 -08:00
Girish Ramakrishnan bd40cf9947 Move server below the addons
server restart will ideally be rarely used.
2018-12-02 18:51:34 -08:00
Girish Ramakrishnan f93044ac3b move routes to services.js 2018-12-02 18:46:34 -08:00
Girish Ramakrishnan 7ed422a3c1 Split out service related functions 2018-12-02 18:45:39 -08:00
Girish Ramakrishnan 203b31d81f Handle split of addon and services 2018-12-02 18:45:33 -08:00
Girish Ramakrishnan 823b3b8aa8 Rename addon route to service
service are the containers and other things like unbound, nginx.
addons are app development hooks.
2018-12-02 17:56:11 -08:00
Girish Ramakrishnan 0430fb2772 rename addon route to services 2018-12-02 17:46:58 -08:00
Girish Ramakrishnan 9a701560f4 Fix email status 2018-12-01 21:50:28 -08:00
Girish Ramakrishnan 9800154d01 Use latest mail container (healthcheck route) 2018-12-01 21:50:24 -08:00
Girish Ramakrishnan 4b3f18ccdb Fix messages in update.sh 2018-11-30 21:18:36 -08:00
Girish Ramakrishnan d3746d6859 Move system below support 2018-11-30 21:11:05 -08:00
Girish Ramakrishnan 840d78b2f4 run update as a task, so it is cancelable 2018-11-30 21:04:24 -08:00
Girish Ramakrishnan d8dfa89f87 rework update ui
- this is not modal anymore
- can be canceled
2018-11-30 20:55:37 -08:00
Girish Ramakrishnan cbdb90d06b do not use result 2018-11-30 20:22:53 -08:00
Girish Ramakrishnan b409fd775d Revert "Fix crash"
This reverts commit 12a5965740.

Really fix crash
2018-11-30 19:10:44 -08:00
Girish Ramakrishnan dbcfb20fab Remove shebang hack, this does not apply anymore 2018-11-30 17:10:28 -08:00
Girish Ramakrishnan 12a5965740 Fix crash 2018-11-30 17:10:28 -08:00
Girish Ramakrishnan 006ab75433 More changes 2018-11-30 17:10:28 -08:00
Girish Ramakrishnan c72ea91743 make task args an object and put it in eventlog 2018-11-30 14:57:24 -08:00
Girish Ramakrishnan f39ce20580 better name for task functions 2018-11-30 14:41:11 -08:00
Girish Ramakrishnan b5c59e6b7d Add args to tasks table 2018-11-30 14:12:24 -08:00
Girish Ramakrishnan b0ecdcc8b6 Fix another crash 2018-11-30 10:03:16 -08:00
Girish Ramakrishnan 8e1560f412 Fix crash in apptask 2018-11-30 09:48:26 -08:00
Girish Ramakrishnan df927eae74 move backupupload.js to scripts
it is just a sudo helper
2018-11-29 23:30:56 -08:00
Girish Ramakrishnan 30aea047e3 startTask now takes args 2018-11-29 23:28:26 -08:00
Girish Ramakrishnan 63e040ea79 Use active field instead of percent 2018-11-29 23:14:00 -08:00
Girish Ramakrishnan cbcadaa449 Return an active field to indicate if task is actually running 2018-11-29 23:12:03 -08:00
Girish Ramakrishnan 9f4226093b Handle bad state if task is already stopped 2018-11-29 23:10:15 -08:00
Girish Ramakrishnan fd1a0f3b0a result is not used anymore in backup view 2018-11-29 23:00:30 -08:00
Girish Ramakrishnan fca0e897b2 Add tasks.startTask 2018-11-29 16:21:04 -08:00
Girish Ramakrishnan 2f729b56fa Use result in db instead of ipc 2018-11-29 15:34:05 -08:00
Girish Ramakrishnan d9f3f64c76 Store result and error message separately 2018-11-29 14:45:28 -08:00
Girish Ramakrishnan e8fa909c2f Bump graphite since the container port changed 2018-11-29 09:33:46 -08:00
Johannes Zellner 44f6636653 Add more changes 2018-11-29 16:44:44 +01:00
Johannes Zellner abaf8a676c Fix edit icons in settings and account view 2018-11-29 16:43:28 +01:00
Johannes Zellner 0b96fc4701 Use Cloudron style fallback icon 2018-11-29 12:04:56 +01:00
Johannes Zellner 400e210d37 Show memory usage for addons 2018-11-28 12:53:35 +01:00
Johannes Zellner 148a0d0fc6 Add memory usage for addon status api 2018-11-28 12:33:24 +01:00
Girish Ramakrishnan 632ba69663 Make restore/download logic have progress callbacks 2018-11-27 12:13:16 -08:00
Girish Ramakrishnan b2465dd2ee Set the backup task progress in the task only 2018-11-27 12:12:27 -08:00
Girish Ramakrishnan e56b87766b backupApp should not set backup task progress 2018-11-27 11:06:03 -08:00
Girish Ramakrishnan f7ca2e416a Add progress callback for snapshotting 2018-11-27 11:03:58 -08:00
Girish Ramakrishnan 002f68b0a1 Add progress info during backup rotation 2018-11-27 10:51:35 -08:00
Girish Ramakrishnan aa31be5c5a backup: make upload progress available with callback+ipc 2018-11-27 10:42:34 -08:00
Johannes Zellner 6c0b7017bd Add some 3.4 changes 2018-11-27 14:41:03 +01:00
Johannes Zellner ea0c697ad3 Make admins go to the docs in error.html 2018-11-27 10:48:31 +01:00
Girish Ramakrishnan 581774e001 Use ipc to pass back the result 2018-11-26 20:39:52 -08:00
Girish Ramakrishnan 3847a6616e No need to track backup time since it is killable now 2018-11-26 20:39:20 -08:00
Girish Ramakrishnan 48fbe28355 Make upload task abort when parent dies 2018-11-26 19:11:30 -08:00
Girish Ramakrishnan e3ee5bc1d5 lint 2018-11-26 15:55:00 -08:00
Girish Ramakrishnan a2da9bea58 backup: use ipc for communicating with upload process 2018-11-26 15:21:48 -08:00
Johannes Zellner edf8c32a0f caas errorCodes in error.html are gone now 2018-11-26 20:05:55 +01:00
Johannes Zellner ccef5da7d9 Minor fixes to the error.html 2018-11-26 19:32:19 +01:00
Johannes Zellner e4512e12c5 Add --help for cloudron-support and make ssh key enabling optional 2018-11-26 15:28:11 +01:00
Johannes Zellner ddf213aec4 Remove logs from support view, they are now in system view 2018-11-26 14:59:39 +01:00
Johannes Zellner 114f48fb17 Remove leftover console.log() 2018-11-26 14:50:10 +01:00
Johannes Zellner 8bd9237951 Use addon log routes in logviewer 2018-11-26 14:49:50 +01:00
Johannes Zellner ae488312a1 Add ui bits to be able to reboot the server 2018-11-26 09:24:58 +01:00
Johannes Zellner 1ed45656e4 Rename addons view to system
We can rename the menu entry further but I wasn't sure if diagnostics
will be nicer. Diagnostics kinda overlaps with the graphs there and all
2018-11-26 08:59:31 +01:00
Johannes Zellner 07edcc5f94 Show notification if reboot is required 2018-11-26 08:48:58 +01:00
Johannes Zellner 289e018160 Fix comment text 2018-11-26 08:19:24 +01:00
Johannes Zellner cb6699eeed Add api to check if the server needs a reboot 2018-11-26 08:19:24 +01:00
Girish Ramakrishnan 802011bb7e Fix args to shell.sudo 2018-11-25 14:57:51 -08:00
Girish Ramakrishnan 6cd8e769be remove all uses of sudoSync 2018-11-25 14:43:29 -08:00
Girish Ramakrishnan 9f6f67d331 ssh: remove use of shell.sudoSync 2018-11-25 14:27:06 -08:00
Johannes Zellner 161a8fe2bf Make docker restartable 2018-11-24 22:12:28 +01:00
Girish Ramakrishnan b9c9839bb7 apparmor is always enabled on all ubuntu 2018-11-23 13:11:31 -08:00
Girish Ramakrishnan 76edbee48c Better error message 2018-11-23 13:11:15 -08:00
Girish Ramakrishnan 4142d7a050 Fix error handling of all the execSync usage 2018-11-23 13:11:15 -08:00
Girish Ramakrishnan a0306c69e1 remove unused acme1.js
it got merged to acme2.js
2018-11-23 13:11:15 -08:00
Girish Ramakrishnan 31823f6282 Check if result is not null 2018-11-23 13:11:15 -08:00
Girish Ramakrishnan 9b4fffde29 Use shell.exec instead of shell.execSync 2018-11-23 11:18:45 -08:00
Girish Ramakrishnan cce03e250d these can just be debugs 2018-11-22 18:05:41 -08:00
Girish Ramakrishnan 9b32cad946 typoe 2018-11-22 17:26:06 -08:00
Girish Ramakrishnan 2877a1057e Add CLOUDRON_PROXY_IP 2018-11-22 16:50:02 -08:00
Johannes Zellner 1783059fd4 Better addon restart feedback 2018-11-22 22:12:00 +01:00
Johannes Zellner e2debe3c39 Add starting addon state when we wait for healthcheck 2018-11-22 21:54:31 +01:00
Johannes Zellner f54ab11f18 Handle mail related addon logs 2018-11-22 12:38:50 +01:00
Johannes Zellner b560e281d0 share container addon status code 2018-11-22 12:38:50 +01:00
Girish Ramakrishnan 3bb4ef5727 Some servers can be very slow starting databases 2018-11-21 09:49:08 -08:00
Johannes Zellner aab766e8ff Add button to reset addon memory to platform defaults 2018-11-21 17:06:01 +01:00
Johannes Zellner 158514f334 Replace addon start/stop with restart 2018-11-21 16:14:02 +01:00
Johannes Zellner 900c008d20 Only allow addon restarts, no start+stop 2018-11-21 16:06:58 +01:00
Johannes Zellner 77d29c3728 Patch up the addon memory configuration 2018-11-21 15:57:26 +01:00
Johannes Zellner c1183a09a8 Add addon configure route 2018-11-21 15:47:41 +01:00
Girish Ramakrishnan e04b7b55b0 Remove upgrade flag
This is not used since ages since we changed our update methodology
2018-11-20 10:29:54 -08:00
Johannes Zellner 3c3383ac03 Show memory config in list 2018-11-20 17:04:53 +01:00
Johannes Zellner 6e46240fd7 Add addon configure dialog 2018-11-20 17:01:46 +01:00
Johannes Zellner 329cc80933 Send memory settings on addon status 2018-11-20 16:53:27 +01:00
Johannes Zellner d01c46bfee Refresh addon status automatically 2018-11-20 14:47:39 +01:00
Johannes Zellner a13f0706b4 Report addon state detail for further use 2018-11-20 13:11:11 +01:00
Johannes Zellner 55811de4b8 Check for docker ping result 2018-11-20 13:07:41 +01:00
Johannes Zellner ab456f179e Check for healthcheck in addon status code 2018-11-20 12:26:33 +01:00
Johannes Zellner f9d5bcd352 Make getAddonDetails() return AddonsError 2018-11-20 12:12:25 +01:00
Johannes Zellner 1e5007ec8b Add logs button and set default action in repair dialog 2018-11-20 11:39:32 +01:00
Johannes Zellner deed95e9a9 Update progress needs to be checked some other way now 2018-11-20 11:36:17 +01:00
Johannes Zellner 082323511a Handle addon state correctly 2018-11-20 11:09:20 +01:00
Johannes Zellner c07224cab5 Fix tooltips 2018-11-20 11:09:20 +01:00
Johannes Zellner 1604a96f41 Support addon logs in logviewer 2018-11-20 11:09:20 +01:00
Johannes Zellner 50963f00c0 Add basic UI controls for start, stop, logs and show status 2018-11-20 11:09:20 +01:00
Johannes Zellner 699db93b18 Add initial addons view 2018-11-20 11:09:20 +01:00
Johannes Zellner 6a337884b5 Add start/stop addon code 2018-11-20 11:09:09 +01:00
Johannes Zellner f953d115da Fix missing require 2018-11-20 11:09:09 +01:00
Johannes Zellner 88e8fc840f Fetch basic addon status from docker 2018-11-20 11:09:09 +01:00
Johannes Zellner d1818e31b0 Add addon status hooks 2018-11-20 11:09:09 +01:00
Johannes Zellner 3f4bf647e8 Allow console.* in the linter config 2018-11-20 11:09:09 +01:00
Johannes Zellner 725a7e6dec Add missing requires 2018-11-20 11:09:09 +01:00
Johannes Zellner e08b210001 Add initial addons rest apis 2018-11-20 11:09:09 +01:00
Girish Ramakrishnan ec08ccb996 move tasks to separate directory
these are just wrappers that we use to launch as processes
2018-11-19 21:17:04 -08:00
Girish Ramakrishnan b47a146c2b unlock on log failure 2018-11-19 21:12:58 -08:00
Girish Ramakrishnan 14dff27d45 boxUpdateInfo cannot be null here 2018-11-19 21:09:33 -08:00
Girish Ramakrishnan 305a3c94d0 Rework the progress API to use the task progress 2018-11-19 21:06:44 -08:00
Girish Ramakrishnan 218739a6b5 Add tasks table and API
progress will be tracked with this table instead of being in-process
like progress.js
2018-11-19 17:37:42 -08:00
Girish Ramakrishnan 85e467581c Use the new task API 2018-11-19 17:34:14 -08:00
Girish Ramakrishnan 390e69c01c Fix backup API routes 2018-11-19 14:41:16 -08:00
Girish Ramakrishnan 42e4588e9c Fix backup route 2018-11-19 14:40:47 -08:00
Johannes Zellner 4ef274acf0 Box logs are now in a log file 2018-11-19 19:47:19 +01:00
Girish Ramakrishnan 93c194cff7 Add button to stop backup 2018-11-17 20:47:51 -08:00
Girish Ramakrishnan 00450dc048 Fix backup API routes 2018-11-17 20:47:51 -08:00
Girish Ramakrishnan 8267279779 backup can now be stopped
track the backup process and killable
2018-11-17 20:31:07 -08:00
Girish Ramakrishnan 6d971b9235 backupupload also logs to stdout now 2018-11-17 19:38:02 -08:00
Girish Ramakrishnan 98dc160886 remove the progress and watchdog timers
not needed since we will track these processes now and can be killed
by the user.
2018-11-17 19:38:02 -08:00
Girish Ramakrishnan a869c88b43 Remove setBackupProgress
the upload task can just output to stdout. for progress status, we
can just use a tailstream on the ui side
2018-11-17 19:38:02 -08:00
Girish Ramakrishnan 0b86070fe9 run backuptask as separate process 2018-11-17 19:38:02 -08:00
Girish Ramakrishnan 5c9b6736f0 Remove pruneInfraImages out of platform startup
If it fails, it's really OK. Maybe we will have a button to remove
images.

This goes further into step of webadmin always staying up and not
crashing/erroring for cosmetic issues.
2018-11-17 19:35:39 -08:00
Girish Ramakrishnan fd4057df94 shell.exec -> shell.spawn 2018-11-17 19:26:19 -08:00
Girish Ramakrishnan 1b1945e1f5 Move out graphite from port 8000
Port 8000 is used by esxi management service (!)
2018-11-17 19:14:21 -08:00
Girish Ramakrishnan ebb053b900 add back timestamps to debug output 2018-11-16 14:16:11 -08:00
Girish Ramakrishnan 3381d9b595 Add format to the default backup config 2018-11-16 14:15:20 -08:00
Girish Ramakrishnan d7a11ef394 runBackupTask -> runBackupUpload 2018-11-16 09:21:07 -08:00
Johannes Zellner c319fd5862 Fix all animated spinners for new fontawesome 2018-11-16 17:03:21 +01:00
Johannes Zellner 9d40cffabe Add logrotate config for box logs 2018-11-16 13:14:59 +01:00
Johannes Zellner de44c63557 box now also logs to a a file instead of journald 2018-11-16 13:05:11 +01:00
Johannes Zellner ac25477cd7 Ensure we prefix all output with a timestamp
note that debug() already does this now on its own in the same format
it does not use console.log but process.stderr
2018-11-16 13:02:37 +01:00
Johannes Zellner 59b86aa090 Stop logging box to journald 2018-11-16 12:15:38 +01:00
Johannes Zellner 5048b5b585 Fixup the twitter icon 2018-11-15 23:28:06 +01:00
Girish Ramakrishnan 6abd48d480 rename backuptask to backupupload 2018-11-15 12:00:51 -08:00
Girish Ramakrishnan 72fc6b8c5a Fix tests 2018-11-15 12:00:51 -08:00
Girish Ramakrishnan fcce4a6853 Add note on StandardError 2018-11-15 10:52:31 -08:00
Girish Ramakrishnan a3b1a2c781 Get the domain correctly from subject 2018-11-15 10:47:20 -08:00
Johannes Zellner a838a1706f Fix indentation 2018-11-15 19:26:50 +01:00
Johannes Zellner e7f24084af Fixup all missed icons 2018-11-15 18:07:18 +01:00
Johannes Zellner c57b9b4fa3 Update fontawesome from v3 to v5 2018-11-15 17:42:29 +01:00
Johannes Zellner a24c9fbafb Put cloudron-updater (installer.sh) logs persistently to /var/log/ 2018-11-15 14:54:12 +01:00
Johannes Zellner ab255e78c5 Make the cert subject match 2018-11-15 14:18:34 +01:00
Girish Ramakrishnan 2628678d82 3.3.4 changes 2018-11-14 22:11:46 -08:00
Girish Ramakrishnan eaf9b7f049 Add certificate.new event 2018-11-14 20:47:18 -08:00
Girish Ramakrishnan b8df4d0b79 bare domains are getting continuously renewed
the code is not handling the case where bare domain is not part
of the wildcard SAN.
2018-11-14 20:47:15 -08:00
Girish Ramakrishnan ac5b7a4469 Add certificate.new event 2018-11-14 20:37:58 -08:00
Girish Ramakrishnan eb315f34dc Pass around domainObject 2018-11-14 20:32:14 -08:00
Girish Ramakrishnan 884faa0e27 Add note on where to check cert status 2018-11-14 20:22:14 -08:00
Girish Ramakrishnan af535757a8 Fix issue where request module was buffering all data
when request is give a callback, it will save all the data in memory
to give the data in the response callback
2018-11-14 19:03:27 -08:00
Girish Ramakrishnan 50b4b7bb92 this event is no more 2018-11-14 11:20:11 -08:00
Girish Ramakrishnan 600e030c6d add a note what the script is about 2018-11-14 10:25:43 -08:00
Girish Ramakrishnan e86b813551 cloudron-support: use timeout command for docker ps output 2018-11-14 10:22:10 -08:00
Girish Ramakrishnan af6653dfeb do not timeout when checking for updates 2018-11-13 10:38:18 -08:00
Johannes Zellner f93e0c868c Warn the user if / or /tmp is full 2018-11-13 13:31:49 +01:00
Johannes Zellner e53aaddc9c Add 3.3.3 changes 2018-11-13 12:54:40 +01:00
Johannes Zellner d3ebb99131 Fix apptask concurrency
This broke due to async behavior introduced with 1dc649b7a2
2018-11-13 12:54:40 +01:00
Girish Ramakrishnan 82037b70e4 retry apply of platform config
it seems that scaling down addons can fail at times. this can happen
if the kernel is busy swapping things etc. so, we do not block the
platform startup for this operation.

Nov 13 05:20:00 localhost dockerd[28831]: time="2018-11-13T05:20:00.365056059Z" level=error msg="Handler for POST /v1.37/containers/mongodb/update returned error: Cannot update container 6532d4a923ce9f10303f2e2aa7f03c35383864f44f3db6abd5c58da3c1a7702f: docker-runc did not terminate sucessfully: failed to write 419430400 to memory.memsw.limit_in_bytes: write /sys/fs/cgroup/memory/docker/6532d4a923ce9f10303f2e2aa7f03c35383864f44f3db6abd5c58da3c1a7702f/memory.memsw.limit_in_bytes: device or resource busy\n: unknown"
Nov 13 05:20:00 localhost node[5486]: box:shell updatemongodb (stderr): Error response from daemon: Cannot update container 6532d4a923ce9f10303f2e2aa7f03c35383864f44f3db6abd5c58da3c1a7702f: docker-runc did not terminate sucessfully: failed to write 419430400 to memory.memsw.limit_in_bytes: write /sys/fs/cgroup/memory/docker/6532d4a923ce9f10303f2e2aa7f03c35383864f44f3db6abd5c58da3c1a7702f/memory.memsw.limit_in_bytes: device or resource busy
2018-11-12 21:58:57 -08:00
Girish Ramakrishnan 323dfb1853 More typos 2018-11-12 10:27:56 -08:00
Girish Ramakrishnan 59b6d2ef66 mail: clear timeout for dns route 2018-11-12 10:25:15 -08:00
Girish Ramakrishnan 7b99167d30 typo 2018-11-12 09:32:02 -08:00
Girish Ramakrishnan c829f190df 3.3.2 changes 2018-11-11 22:18:46 -08:00
Girish Ramakrishnan f306f334c0 Update mongodb for invalid index fix 2018-11-11 22:15:51 -08:00
Girish Ramakrishnan 3fb8243264 Add route to trigger app import 2018-11-11 21:58:20 -08:00
Girish Ramakrishnan b8861b9d78 Use debug instead 2018-11-11 21:57:45 -08:00
Girish Ramakrishnan 61d98ca4ca give addons more memory when starting up / importing
we scale it back after the import is done
2018-11-11 21:45:02 -08:00
Girish Ramakrishnan a3a22604ba Mark import errors as app errors 2018-11-11 10:36:11 -08:00
Girish Ramakrishnan 1766c3f6d6 lint 2018-11-11 10:12:51 -08:00
Girish Ramakrishnan aae259479f move configure webadmin and status out of setup logic 2018-11-11 09:56:01 -08:00
Girish Ramakrishnan b640a053e3 Always generate webadmin config on startup 2018-11-11 08:19:24 -08:00
Girish Ramakrishnan a3cc17705d Do not remove default.conf and admin.conf when re-configuring apps 2018-11-10 22:02:42 -08:00
Girish Ramakrishnan 78ac1d2a12 Add isCloudronManaged label to containers managed by cloudron 2018-11-10 19:00:03 -08:00
Girish Ramakrishnan 6ec36c9605 Do not crash if platform.start fails
With this change, the box code always starts up even if nginx fails,
docker fails etc.
2018-11-10 18:34:37 -08:00
Girish Ramakrishnan bd2b03876b Add users.isActivated
it's easier to see where we do activation checks
2018-11-10 18:09:00 -08:00
Girish Ramakrishnan 0c5cb9c98f Remove settings.initialize/uninitialize
this simplifies the startup sequence
2018-11-10 14:55:23 -08:00
Girish Ramakrishnan eddcc6fe27 Fix another test 2018-11-10 01:35:49 -08:00
Girish Ramakrishnan cf259ace47 more events 2018-11-10 01:34:50 -08:00
Girish Ramakrishnan 953b55439c eventlog: add domain events 2018-11-10 01:25:34 -08:00
Girish Ramakrishnan 270389a18c Add new domain events 2018-11-10 01:09:06 -08:00
Girish Ramakrishnan e526890e3e Add a separate disabled event 2018-11-10 00:35:56 -08:00
Girish Ramakrishnan a340eea769 Add new mail events 2018-11-10 00:32:37 -08:00
Girish Ramakrishnan 71e1e2468b fix test 2018-11-10 00:22:38 -08:00
Girish Ramakrishnan fcb7c3e82a fix casing 2018-11-10 00:18:56 -08:00
Girish Ramakrishnan 0d65635bc4 eventlog: add email enabled/disabled events 2018-11-10 00:17:38 -08:00
Girish Ramakrishnan 4aa76a859f eventlog: mail list add,remove events 2018-11-10 00:17:25 -08:00
Girish Ramakrishnan 003789265c eventlog: mailbox add,remove events 2018-11-10 00:06:02 -08:00
Girish Ramakrishnan 1bb3b5e51b addons: refactor code into dumpPath 2018-11-09 12:02:38 -08:00
Girish Ramakrishnan 22589e7103 Fix the checkbox 2018-11-09 11:24:19 -08:00
Girish Ramakrishnan 2b6423d3b7 Move the dyndns setting to the domains view 2018-11-09 10:37:50 -08:00
Girish Ramakrishnan 032ac3ed97 cloudron-provision args
zone -> domain
appstore configs -> license
+backup_config
cloudflare* -> dns_config
2018-11-08 21:44:56 -08:00
Girish Ramakrishnan edc2c25bda Add libpython
On ubuntu 18.04, on hetzner and vultr, collectd does not start without
this.
2018-11-08 16:11:01 -08:00
Girish Ramakrishnan 2fa44879e9 cloudron-support: Add more services 2018-11-08 16:05:37 -08:00
Girish Ramakrishnan 7e27413b29 18.04: Add sudo
This was hit on scaleway
2018-11-08 14:47:49 -08:00
Johannes Zellner 77508d180e Add changes for 3.3.1 2018-11-08 21:51:07 +01:00
Johannes Zellner 111f5a7c99 Update postgres addon to 2.0.2 2018-11-08 20:51:14 +01:00
Johannes Zellner d2182559e8 change the ssh user detection to rely on SUDO_USER 2018-11-08 19:39:25 +01:00
Johannes Zellner 9fe91cf9cb Log if we receive SIGINT or SIGTERM 2018-11-08 14:35:22 +01:00
Girish Ramakrishnan de000648dc do not chown redis during updates 2018-11-07 15:21:12 -08:00
Girish Ramakrishnan 0958a57c45 Fix path to conf file 2018-11-07 10:37:00 -08:00
Johannes Zellner 9aae0d9d4c Add initial version of the cloudron-support tool 2018-11-07 17:37:16 +01:00
Girish Ramakrishnan 50bf193fd1 Hide "remote support" option for managed cloudrons 2018-11-06 21:50:10 -08:00
Girish Ramakrishnan c2ba059ced Remove the "not recommended" 2018-11-06 14:04:30 -08:00
Girish Ramakrishnan ccfd385beb Fix waitForDns 2018-11-05 23:00:55 -08:00
Girish Ramakrishnan ee6cca5cdf Make cert an object 2018-11-05 22:39:06 -08:00
Girish Ramakrishnan 0093e840c6 Fix various typos 2018-11-05 21:26:53 -08:00
Girish Ramakrishnan 7c6e5ac32b newline replace certs for json databag 2018-11-05 21:23:22 -08:00
Girish Ramakrishnan 15039bf293 Fix validation of fallback certs 2018-11-05 21:13:34 -08:00
Girish Ramakrishnan 89b6cd9d1f cloudron-provision: set tls cert and key 2018-11-05 20:59:29 -08:00
Girish Ramakrishnan 60992405d5 generate cert with correct CN 2018-11-05 20:48:28 -08:00
Girish Ramakrishnan d96b1cc864 generate fallback cert correctly for hyphenated domains 2018-11-05 19:53:50 -08:00
Girish Ramakrishnan 5165cd8f40 Use debug 2018-11-05 17:36:23 -08:00
Girish Ramakrishnan 9f8b47daa9 domains.fqdn only takes 2 args 2018-11-05 17:35:50 -08:00
Girish Ramakrishnan 9372afad9a Fix debug 2018-11-05 17:12:04 -08:00
Girish Ramakrishnan eef6056174 bump timeout of setup route 2018-11-05 16:55:46 -08:00
Girish Ramakrishnan a1dfc758c6 Fix debug 2018-11-02 17:10:16 -07:00
Girish Ramakrishnan 8caf5cc741 typo 2018-11-02 14:50:45 -07:00
Girish Ramakrishnan 7739f8f174 Set container hostname to something constant
currently, it defaults to the container name. apps might use this hostname
for communication with child containers. but this breaks if app gets updated
and gets a new hostname
2018-11-02 14:47:00 -07:00
Girish Ramakrishnan 0618431be7 print the cloudronId on registration 2018-11-01 23:10:26 -07:00
Girish Ramakrishnan 609c4388f0 cloudron-provision: take appstore user id and token 2018-11-01 23:08:26 -07:00
Girish Ramakrishnan 28243956db Add cert and appstore info to provision script 2018-11-01 22:38:21 -07:00
Girish Ramakrishnan ff3a4f65dd autoprovision: register cloudron when provided appstore config 2018-11-01 22:28:51 -07:00
Girish Ramakrishnan 44da148fd1 remove collectd directory again 2018-11-01 20:33:40 -07:00
Girish Ramakrishnan 0b37479838 Add provision script 2018-11-01 20:17:15 -07:00
Girish Ramakrishnan c09aa2a498 Make LE work with hyphenated domains 2018-11-01 19:08:05 -07:00
Girish Ramakrishnan 00d032616f More changes 2018-11-01 13:55:27 -07:00
Johannes Zellner 856ed0c765 Use config.managed for dyndns ui 2018-11-01 09:35:22 +01:00
Johannes Zellner a73681ce8b settings view is only available to admins no need to check here 2018-11-01 09:34:28 +01:00
Johannes Zellner 1426ed952b Hide dynamic dns settings for caas and non operators 2018-11-01 09:33:46 +01:00
Johannes Zellner d6bf6eb0a0 Add dynamic dns settings 2018-11-01 09:33:46 +01:00
Girish Ramakrishnan 97b24079f7 Show lock icon for locked domains 2018-10-31 11:01:10 -07:00
Johannes Zellner 041285b187 Add dynamic dns settings routes 2018-10-31 16:02:51 +01:00
Johannes Zellner fa9aa50fdf support --output again in createReleaseTarball script for hotfix to work
This avoids having to calculate the output filename with revisions and
exact format in the cli tool.
2018-10-31 08:54:24 +01:00
Girish Ramakrishnan 707f84839e typoe 2018-10-30 23:52:09 -07:00
Girish Ramakrishnan 643d2f3fad typo 2018-10-30 22:51:59 -07:00
Girish Ramakrishnan e0b1ebba92 verifyOperator -> isUnmanaged 2018-10-30 21:17:34 -07:00
Girish Ramakrishnan 92660e037d replace operatorActions with managed 2018-10-30 21:07:37 -07:00
Girish Ramakrishnan 581bbafa06 registry_config route does not require operator check 2018-10-30 20:54:35 -07:00
Girish Ramakrishnan 2e6a0411fb Never show hyphenated feature for now 2018-10-30 20:52:03 -07:00
Girish Ramakrishnan ce93518c0a allow hyphenated subdomains on all editions 2018-10-30 20:35:35 -07:00
Girish Ramakrishnan 0ba0b009c7 make the domain locking code more clear 2018-10-30 20:35:32 -07:00
Girish Ramakrishnan eed8f109bc operator check is now directly based on edition type 2018-10-30 20:26:22 -07:00
Girish Ramakrishnan 63946509b3 Get autoconf data as separate object
This was done because restore API already takes a backupConfig.
So, it's best to split up the primary parameters and the autoconf
2018-10-30 19:27:14 -07:00
Girish Ramakrishnan 668ff99450 Add support for restricted certs as part of dns setup 2018-10-30 18:15:26 -07:00
Girish Ramakrishnan 5d57a5fabb Use new setup route 2018-10-30 14:15:43 -07:00
Girish Ramakrishnan 03984a811f dnsSetup -> setup
It now takes a dnsConfig object. It will end up taking other config
objects for provisioning.
2018-10-30 14:01:02 -07:00
Girish Ramakrishnan 7c733ae150 Fix error handling 2018-10-29 20:19:48 -07:00
Girish Ramakrishnan 9fe02d3818 lint 2018-10-29 20:19:42 -07:00
Girish Ramakrishnan cb90ad803b provider is never empty anymore 2018-10-29 19:20:16 -07:00
Girish Ramakrishnan f10b80d90d Make apps test great again 2018-10-29 12:49:41 -07:00
Girish Ramakrishnan caf1d18250 Add flag for tests to check if platform is ready 2018-10-29 12:46:02 -07:00
Girish Ramakrishnan c700635656 certs: make renew switch to fallback certs 2018-10-28 19:03:57 -07:00
Girish Ramakrishnan d6d2ee7d19 Add version to release filename
This is required because we have to patch the VERSION file inside
the tarball for 'rerelease'. Which then requires release tarballs
to have a unique name.

The version is at the end because there is code  in release script
which relies on the box sha at the front
2018-10-28 16:16:51 -07:00
Girish Ramakrishnan f5a5da6731 3.0 changes 2018-10-28 14:43:20 -07:00
Girish Ramakrishnan 8f2ce5f4f8 cloudron-setup: Fixup script to support pre-3.2 versions
This is required for e2e and restore of old cloudrons
2018-10-28 14:21:51 -07:00
Girish Ramakrishnan 937e8ce1ed Add the new exoscale-sos regions 2018-10-27 14:44:13 -07:00
Girish Ramakrishnan 62619d21c0 Handle 409 in container exec 2018-10-27 14:15:52 -07:00
Girish Ramakrishnan bf7707b70b cleanup old base image as well 2018-10-27 13:10:02 -07:00
Girish Ramakrishnan 698f3c833b cloudflare: Fix crash
{ success: false,
  errors:
   [ { code: 9103, message: 'Unknown X-Auth-Key or X-Auth-Email' } ],
  messages: [],
  result: null }
/home/yellowtent/box/src/dns/cloudflare.js:36
        } else if (error.error_chain[0] && error.error_chain[0].message) {
                                    ^
TypeError: Cannot read property '0' of undefined
    at translateRequestError (/home/yellowtent/box/src/dns/cloudflare.js:36:37)
    at /home/yellowtent/box/src/dns/cloudflare.js:57:83
2018-10-27 12:51:24 -07:00
Girish Ramakrishnan 5996a107ed Return a bogus version to fix the tests 2018-10-27 12:26:39 -07:00
Girish Ramakrishnan 0307dc5145 Carefully prune addon images
With the docker image prune we ended up removing the redis image
which was ununsed...

This also prevents us from removing images of some app using the
docker addon
2018-10-27 12:01:22 -07:00
Girish Ramakrishnan f9aa09f717 typo 2018-10-27 11:28:30 -07:00
Girish Ramakrishnan 2688a57d46 Move version out of config.js
We now store this in a file called VERSION inside the tarball
itself.
2018-10-27 11:13:36 -07:00
Girish Ramakrishnan 7ad069fd94 Make config.setVersion hidden 2018-10-27 10:44:21 -07:00
Girish Ramakrishnan 06d043dac4 Make baseImage an array of objects 2018-10-26 16:58:18 -07:00
Girish Ramakrishnan 94be6a9e3c Pull images in installer.sh
This way if the network is not working, then the update will just
fail and use the old version

This also tags the addon images with the semver properly
2018-10-26 16:35:18 -07:00
Girish Ramakrishnan 97567b7d2a Do not re-create cloudron.conf
All this argument passing going around is just needless

* boxdata/version file is not used
* dashboard config.json is also unused
2018-10-26 15:29:14 -07:00
Girish Ramakrishnan c1976d5b13 Cloudflare HTTP proxying works now 2018-10-26 15:03:27 -07:00
Girish Ramakrishnan 95d691154d scripts/cloudron-setup: --data-dir is obsolete 2018-10-26 10:59:06 -07:00
Girish Ramakrishnan 9ac9b49522 Move ntp setup to base image init script 2018-10-26 10:57:19 -07:00
Girish Ramakrishnan 6a887c2bba SSH port configuration will be done in appstore 2018-10-26 10:13:35 -07:00
Girish Ramakrishnan 0250508a89 Add comment for installer.sh and start.sh 2018-10-26 10:13:35 -07:00
Girish Ramakrishnan f97973626c start.sh: curl is not used
we will move network stuff to installer.sh anyways
2018-10-26 09:55:13 -07:00
Girish Ramakrishnan 5cdf9d1c6f Move host configuration to setup script since Cloudron does not rely on it
Also hostname cannot be set here since admin_fqdn is not available on
initial setup
2018-10-25 18:49:05 -07:00
Girish Ramakrishnan 009e888686 remove dead migration of nginx certs 2018-10-25 18:43:24 -07:00
Girish Ramakrishnan e3478c9d13 Use docker cli to cleanup old images 2018-10-25 16:33:12 -07:00
Girish Ramakrishnan 8070e88564 Add Certs to menu bar 2018-10-25 13:23:42 -07:00
Girish Ramakrishnan 2e3ddba7e5 cloudron-setup: Log arguments later 2018-10-25 11:31:39 -07:00
Girish Ramakrishnan 81ac44b7da Fix failing test 2018-10-25 00:01:32 -07:00
Girish Ramakrishnan ffe50ff977 detect change in provider type and renew accordingly 2018-10-24 20:40:05 -07:00
Girish Ramakrishnan 73faba3c28 certs: Fix the config filename of admin domain 2018-10-24 20:32:03 -07:00
Girish Ramakrishnan c1db52927e Add a debug 2018-10-24 20:32:03 -07:00
Girish Ramakrishnan e7120bd086 Move renewal logic to domain model code 2018-10-24 20:32:03 -07:00
Girish Ramakrishnan 15c0c691ff Add button to renew certs of a domain 2018-10-24 15:51:02 -07:00
Girish Ramakrishnan 91ad94f978 No more prereleases 2018-10-24 15:28:41 -07:00
Girish Ramakrishnan ee517da4f4 Add route to renew certs of a domain 2018-10-24 13:09:41 -07:00
Girish Ramakrishnan 0d04213199 Ensure app can be uninstalled even if image format is invalid 2018-10-24 13:09:41 -07:00
Johannes Zellner 114f6c596d Use new mongodb addon with fixed return paths 2018-10-24 10:45:30 +02:00
Johannes Zellner 5dadd083be Use new mysql addon with fixed db import 2018-10-23 15:59:40 +02:00
Johannes Zellner 28d61a4d70 Use postgres addon with fixed restore 2018-10-23 13:05:39 +02:00
Girish Ramakrishnan a49969f2be Move apphealthmonitor into a cron job
This makes sure that it only runs post activation

See also a9c1af50f7
2018-10-22 20:08:49 -07:00
Girish Ramakrishnan 65eaf0792e Remove any appdata dir symlinks correctly 2018-10-18 19:58:37 -07:00
Girish Ramakrishnan 6153f45fd9 Remove legacy redis directory 2018-10-18 19:30:10 -07:00
Girish Ramakrishnan d5ffb8b118 Fix appstore casing
The API on cloudron.io wants appstore and not appStore
2018-10-18 14:21:09 -07:00
Girish Ramakrishnan bc283f1485 Validate env vars 2018-10-18 13:40:26 -07:00
Girish Ramakrishnan 2d427a86f0 Send appstoreId as part of purchase/unpurchase 2018-10-18 11:01:32 -07:00
Girish Ramakrishnan 2a6edd53b6 Update postgresql (clone/restore fix) 2018-10-17 18:49:35 -07:00
Girish Ramakrishnan cf8bb3da9e Update mysql (prefix backup and restore) 2018-10-17 18:40:48 -07:00
Girish Ramakrishnan 7c1325cb34 Update mail addon (gnutls-bin) 2018-10-17 14:18:54 -07:00
Girish Ramakrishnan f4ad912cf3 redis: do not import if not upgrading
There will be no backup to import from
2018-10-17 10:55:11 -07:00
Girish Ramakrishnan 78936a35c5 redis: Check the new dump location first
we do not cleanup the old dumps (yet). this then means that we will
constantly be importing the older dump.
2018-10-17 10:33:41 -07:00
Johannes Zellner 4ab2f8c153 Fix typo 2018-10-17 18:20:39 +02:00
Girish Ramakrishnan 858f03e02d Update redis addon container
Fixes #223
2018-10-16 15:40:40 -07:00
Girish Ramakrishnan 045cfeeb0d Move the addon startup logic to addons.js
Moved the graphite logic to new graphs.js

The settings code now does change notification itself. Over time,
it makes sense to just having settings code do this for everything
and not have this change listener logic. This lets us:
* Maybe the settings can only return based on final handler result
* All dependant modules otherwise have to "init"ed to listen on startup
* Easier to test those handlers without having to actually change the
  setting (since they will now be in "exports" naturally)

Also, maybe someday with this abstraction we can allow apps to have their
own isolated databases etc
2018-10-16 14:40:29 -07:00
Girish Ramakrishnan bbc121399e Stop containers by name before killing them outright 2018-10-16 13:24:11 -07:00
Girish Ramakrishnan 03d513a3b1 Remove infra upgrade logic
We now upgrade using the dumps of the last backups which are in the
filesystem itself instead of downloading the entire app from the
backup all over.
2018-10-16 11:06:01 -07:00
Girish Ramakrishnan 539447409e Fix mongodb addon digest 2018-10-16 10:06:04 -07:00
Johannes Zellner 4525c6f39e Revert base image change 2018-10-16 15:10:11 +02:00
Girish Ramakrishnan a6618c5813 Update mongodb (healthcheck) 2018-10-16 00:23:18 -07:00
Girish Ramakrishnan 5c1a0c1305 Check the status field for healthcheck 2018-10-16 00:21:48 -07:00
Girish Ramakrishnan 62c9fc90f9 Fix crash when oldConfig is null 2018-10-15 16:29:30 -07:00
Girish Ramakrishnan 2c60614d4b remove special rm script for redis 2018-10-15 16:14:16 -07:00
Girish Ramakrishnan 816fa94555 Upgrade the db addons using dumps when major version changes 2018-10-15 16:14:13 -07:00
Girish Ramakrishnan bbdafc6a2f pass existing infra information to start funcs 2018-10-15 14:09:13 -07:00
Girish Ramakrishnan 5333db5239 Add method to import database from dumps 2018-10-15 10:15:47 -07:00
Girish Ramakrishnan 6254fe196a Install resolvconf
When we disable systemd-resolved, the system goes into a state
where no DNS queries work anymore. Even if unbound is installed
right after. Installing 'resolvconf' fixes this.

There is competition even for this tiny package! (openresolv)
2018-10-15 08:58:37 -07:00
Girish Ramakrishnan 79d3713a4b All apps are being updated already to 1.0.0 2018-10-14 16:31:49 -07:00
Girish Ramakrishnan f1da537c80 wait for addons to start using heathcheck routes 2018-10-14 13:26:01 -07:00
Girish Ramakrishnan b19fc23cb2 Fix the tests 2018-10-12 17:05:31 -07:00
Girish Ramakrishnan 5366524dc0 Add route to set/unset the registry config 2018-10-12 17:04:04 -07:00
Girish Ramakrishnan f86d4f0755 Update manifestformat 2018-10-12 16:13:28 -07:00
Girish Ramakrishnan 3ad495528f whitespace 2018-10-11 16:18:38 -07:00
Girish Ramakrishnan 5bfb253869 Custom env vars for apps
Add a table and the install/configure routes. Initially, I thought
we can just keep the env vars in docker container but that doesn't
work since we create the container only later in apptask. And if the
container gets deleted we lose this information.
2018-10-11 16:17:18 -07:00
Girish Ramakrishnan 630fbb373c healthCheckPath is optional for non-appstore apps 2018-10-11 13:20:31 -07:00
Girish Ramakrishnan 8d09ec5ca6 Disable systemd-resolved on 18.04 2018-10-08 20:09:45 -07:00
Girish Ramakrishnan 23af20ddc9 Update graphite addon 2018-10-08 14:18:13 -07:00
Girish Ramakrishnan 86441bfeb6 Update mail container with latest base image 2018-10-08 10:08:05 -07:00
Johannes Zellner be51daabf0 Use restified addons based on new base image as v2.0.0 2018-10-08 13:41:39 +02:00
Girish Ramakrishnan 86e8db435a Add new 18.04 base image 2018-10-05 14:11:31 -07:00
Girish Ramakrishnan d8401f9ef9 Add 18.04 to changelog 2018-10-05 10:47:17 -07:00
Girish Ramakrishnan 64f98aca5a 18.04 support 2018-10-05 10:28:02 -07:00
Johannes Zellner f660947594 Do not silently retry on dns upsert in apptask 2018-10-05 17:07:34 +02:00
Girish Ramakrishnan 576e22e1a0 Update hash of mail container 2018-10-05 08:00:27 -07:00
Johannes Zellner e004a00073 Add some 3.3.0 changes 2018-10-05 16:24:32 +02:00
Johannes Zellner c0fdac5b34 The additional fetch wont hurt but makes it more readable 2018-10-05 16:21:06 +02:00
Johannes Zellner a2a035235e Use postgres addon 2.0.2 2018-10-05 16:07:22 +02:00
Girish Ramakrishnan 85ac2bbe52 Update 3.2.2 changelog
(cherry picked from commit e67fc64e65)
2018-10-04 21:21:04 -07:00
Girish Ramakrishnan c26e9bbef7 Fix debugs to match function name 2018-10-04 10:29:40 -07:00
Girish Ramakrishnan 3e85029ea1 Add 3.2.1 changes (updated dashboard)
(cherry picked from commit 0189539b27)
2018-09-30 15:03:43 -07:00
Girish Ramakrishnan 8dd3c55ecf Use async unlink 2018-09-28 17:05:53 -07:00
Girish Ramakrishnan 1ee902a541 typoe 2018-09-28 17:01:56 -07:00
Girish Ramakrishnan 55cbe46c7c godaddy: empty the text record for del 2018-09-28 14:35:57 -07:00
Girish Ramakrishnan 5a8a4e7907 acme2: Display any errors when cleaning up challenge 2018-09-28 14:33:08 -07:00
Girish Ramakrishnan 3b5be641f0 acme2: fix challenge subdomain calculation in cleanup 2018-09-28 13:24:34 -07:00
Girish Ramakrishnan a34fe120fb TXT values must be quoted 2018-09-27 20:17:39 -07:00
Girish Ramakrishnan b9918cb6fb Fix changelog ordering 2018-09-26 22:34:14 -07:00
Girish Ramakrishnan f68912b466 copy/paste error
(cherry picked from commit 53fed09a5d)
2018-09-26 22:30:38 -07:00
Girish Ramakrishnan 21a86175b4 Use the local branch in hotfix
(cherry picked from commit ffb02a3ba8)
2018-09-26 22:30:23 -07:00
Girish Ramakrishnan 84150f53e7 Revert "Do not require dashboard remote branch with the same name for hotfix"
This reverts commit b2469de9b0.

This affects the release scripts and always creates dashboard tarball from master
2018-09-26 22:03:38 -07:00
Girish Ramakrishnan dfa4e20a8f Set default cert provider to wildcard
Change it to non-wildcard for manual/noop/wildcard dns
2018-09-26 19:53:09 -07:00
Girish Ramakrishnan ee1a194305 Change the cert provider selection box text 2018-09-26 18:15:09 -07:00
Girish Ramakrishnan 0fa88855e5 Move information text out of advanced view 2018-09-26 18:10:21 -07:00
Girish Ramakrishnan eda3d5c143 Remove invalid dns config notification
The issue is that this value is never really updated unless the box
code is restarted.

Instead, we will fix it to check all domains periodically and send
some email notification.

Fixes cloudron/box#586
2018-09-26 15:13:44 -07:00
Girish Ramakrishnan 42c1f8bb04 start most cron jobs only after activation
Importing the db might take some time. If a cron runs in the middle,
it crashes.

TypeError: Cannot read property 'domain' of undefined
    at Object.fqdn (/home/yellowtent/box/src/domains.js:126:111)
    at /home/yellowtent/box/src/apps.js:460:36
    at /home/yellowtent/box/node_modules/async/dist/async.js:3110:16
    at replenish (/home/yellowtent/box/node_modules/async/dist/async.js:1011:17)
    at /home/yellowtent/box/node_modules/async/dist/async.js:1016:9
    at eachLimit$1 (/home/yellowtent/box/node_modules/async/dist/async.js:3196:24)
    at Object.<anonymous> (/home/yellowtent/box/node_modules/async/dist/async.js:1046:16)
    at /home/yellowtent/box/src/apps.js:458:19
    at /home/yellowtent/box/src/appdb.js:232:13
    at Query.args.(anonymous function) [as _callback] (/home/yellowtent/box/src/database.js
2018-09-26 14:56:45 -07:00
Girish Ramakrishnan a504759b95 more debugs and comments 2018-09-26 12:39:33 -07:00
Girish Ramakrishnan b450efe5c2 Add SFO2 region in restore UI 2018-09-26 12:02:03 -07:00
Girish Ramakrishnan af763eadd4 Fix perms issue when restoring
Fixes #536
2018-09-26 11:59:19 -07:00
Girish Ramakrishnan 818735e2c8 Fix import of older redis backups 2018-09-26 09:48:18 -07:00
Girish Ramakrishnan aefa8ed0d6 Add .eslintrc
Looks like only this supports async/await nicely
2018-09-25 18:31:15 -07:00
Girish Ramakrishnan 78d3aafd7a Fix case where mailbox already exists 2018-09-25 17:04:17 -07:00
Girish Ramakrishnan 1fed7335cf Update the db addons 2018-09-25 14:24:32 -07:00
Girish Ramakrishnan ca76626d55 Add checkbox UI for mailbox location
part of cloudron/box#587
2018-09-25 11:27:43 -07:00
Girish Ramakrishnan 34626abdcf reset mailboxname to .app when empty
fixes #587
2018-09-25 11:26:38 -07:00
Girish Ramakrishnan 477f8a3ca1 mysql: Add message to error string 2018-09-24 16:45:08 -07:00
Girish Ramakrishnan bd7bd2adae 3.1.4 changes 2018-09-24 09:29:58 -07:00
Girish Ramakrishnan d47fd34f66 Use alternateDomain fqdn for ensuring certificate
this makes it work for hyphenated domains as well
2018-09-22 16:26:28 -07:00
Girish Ramakrishnan f6ceee7f50 list domains only once 2018-09-22 16:19:12 -07:00
Girish Ramakrishnan a08f05fb44 Attach fqdn to all the alternateDomains 2018-09-22 15:11:01 -07:00
Girish Ramakrishnan 6214ba7b31 allow hyphenated subdomains in caas 2018-09-22 12:37:38 -07:00
Girish Ramakrishnan e69004548b waitForDnsRecord: use subdomain as argument
this allows to hyphenate the subdomain correctly in all places

the original issue was that altDomain in caas was not working
because waitForDnsRecord was not hyphenating.
2018-09-22 11:26:33 -07:00
Girish Ramakrishnan c8216d84ac register alt domains in install route 2018-09-22 10:09:46 -07:00
Girish Ramakrishnan 5cfc3b22fa Add redis healthcheck 2018-09-20 12:46:08 -07:00
Girish Ramakrishnan a755aecfc5 typo 2018-09-19 17:25:40 -07:00
Girish Ramakrishnan 64e34e13be display error messages 2018-09-19 15:55:42 -07:00
Girish Ramakrishnan e455ea987a postgresql: fix various issues during backup/restore/clear 2018-09-19 15:35:47 -07:00
Girish Ramakrishnan bf87d3fc8b Update redis sha256 2018-09-19 15:11:55 -07:00
Girish Ramakrishnan cfdb939bff redis: various fixes 2018-09-19 14:29:27 -07:00
Girish Ramakrishnan 16fab63442 Update mysql for quoting fix 2018-09-19 12:26:18 -07:00
Johannes Zellner fe14bcf155 Use updated mysql addon 2018-09-19 12:48:44 +02:00
Girish Ramakrishnan 9732b899b0 redis: backup returns 200 now 2018-09-18 14:11:42 -07:00
Girish Ramakrishnan 23b9854c57 Use REST API instead of volumes for redis 2018-09-18 13:09:24 -07:00
Girish Ramakrishnan 0b3f65c70e postgres: restore need not call setup anymore 2018-09-18 12:29:40 -07:00
Girish Ramakrishnan 83d56f79c6 lint 2018-09-18 12:22:19 -07:00
Johannes Zellner 8632939c6e Use restified mysql addon 2018-09-18 20:25:07 +02:00
Johannes Zellner 93cdba8137 Use post instead of delete for postgres clear 2018-09-18 20:23:19 +02:00
Johannes Zellner 2686a1b9e3 Fixup copy and paste errors and linter warnings 2018-09-18 20:20:27 +02:00
Johannes Zellner eec1fe1272 Start mysql addon with env vars instead of vars.sh file 2018-09-18 20:18:39 +02:00
Johannes Zellner f7f26fdf78 Fix logging in getAddonDetails() 2018-09-18 20:18:39 +02:00
Johannes Zellner d980d44833 Talk to the mysql addon via rest apis 2018-09-18 20:18:39 +02:00
Girish Ramakrishnan af4b2b075e redis: fix clear return code 2018-09-17 20:44:13 -07:00
Girish Ramakrishnan 3fcf6aa339 Add a timeout to wait for redis to start 2018-09-17 20:40:07 -07:00
Girish Ramakrishnan 1b205ac107 postgresql: fix clear route to have username and remove extra } 2018-09-17 19:53:12 -07:00
Girish Ramakrishnan bcee0aa2ad Update postgresql (reset root password fix) 2018-09-17 19:22:27 -07:00
Girish Ramakrishnan e2bf52b69d postgresql: Add missing db prefix in routes 2018-09-17 18:11:38 -07:00
Girish Ramakrishnan 3c6dffbbc7 Remove old docker images correctly
Old images had no sha256, so it prints "<none>". These images
have to be accessed by tag which uses the ":tag" format whereas
the sha images use the "@sha" format
2018-09-17 16:39:31 -07:00
Girish Ramakrishnan 691b876d61 Update postgresql image (re-setup fix) 2018-09-17 16:25:17 -07:00
Girish Ramakrishnan ed14115ff1 Fix new account return value
https://tools.ietf.org/html/draft-ietf-acme-acme-07#section-7.3
2018-09-17 15:30:16 -07:00
Girish Ramakrishnan 6d9c6ffba3 acme2: register new account returns 201 2018-09-17 15:19:19 -07:00
Johannes Zellner b8dd01d502 Bump postgres addon image again with latest fixes 2018-09-17 15:56:02 +02:00
Johannes Zellner 7e16b96abe Use updated postgres addon 2018-09-17 12:54:05 +02:00
Johannes Zellner 705d0ba7f9 Use restified postgresql addon 2018-09-16 22:56:26 +02:00
Girish Ramakrishnan 306c80dd93 Fix addons.js with the new env var names 2018-09-15 20:38:18 -07:00
Girish Ramakrishnan c8ed1d950b Update mongodb addon (restore does not clear anymore) 2018-09-15 20:29:04 -07:00
Girish Ramakrishnan 705bf3db98 Use only CLOUDRON_* prefixed vars (we reserve these) 2018-09-15 20:15:58 -07:00
Girish Ramakrishnan e2b388f721 Update redis addon that has clear route 2018-09-15 20:14:16 -07:00
Girish Ramakrishnan 3f34734933 withFileTypes is only available on node 10 2018-09-15 18:47:34 -07:00
Girish Ramakrishnan 391ee00db8 Fix cleanup of old images 2018-09-15 18:41:06 -07:00
Girish Ramakrishnan 64a7b80395 Fix issue deleting app dir during restore
During restore, only the superfluous addons are teardown. Rest of
the addons are kept as-is. This is done to preserve the addon
configuration across restores (thus preserving db passwords).

We then rely on the restoreApp logic to call restore in each addon.
Each restore currently setup, clear and them imports the backup.

With the volume changes, we have moved volume create/delete to the
localstorage addon. Currently, the localstorage addon has no concept of restore
because the backup download extracts it directly into the volume.

Because of the above, during the restore code path, we don't teardown
the localstorage addon and thus files are left behind in appid/data/. This
prevents deleteAppDir() from removing the appid/ directory.

The fix is to add a new 'clear' command to addons. Before restore, we
clear the addons.
2018-09-15 17:35:47 -07:00
Girish Ramakrishnan 46a00c839b rename create/deleteVolume to avoid confusion 2018-09-15 15:30:26 -07:00
Girish Ramakrishnan 9f6621434f Use sha256 to accidentally prevent overwritten tags 2018-09-14 20:20:46 -07:00
Johannes Zellner 3963eb687f Use the sudo script for app volume 2018-09-14 14:37:20 +02:00
Johannes Zellner 56cd97147a Unify the code to get addon container ip and token 2018-09-14 13:26:56 +02:00
Johannes Zellner 614b3ed5d1 Remove unused variable 2018-09-14 13:19:47 +02:00
Johannes Zellner 9f622c5e65 Do not store the cloudron redis service token in the addon env blob 2018-09-14 13:19:33 +02:00
Girish Ramakrishnan 4f6a467181 bump minor version to make apps reconfigure themselves
this is because the container configuration has changed
(we create volume)
2018-09-13 15:47:08 -07:00
Girish Ramakrishnan a46e208c63 Use docker volumes instead of bind mount for app data 2018-09-13 15:35:41 -07:00
Johannes Zellner a0fd60408b Use https with selfsigned certs for addon service calls 2018-09-13 21:37:55 +02:00
Johannes Zellner ffbbba938a Replace superagent with request for talking to addons 2018-09-13 12:54:33 +02:00
Johannes Zellner a222b3ed58 Use new restified mongodb and redis addons 2018-09-13 12:54:33 +02:00
Girish Ramakrishnan ed887953b6 typo 2018-09-12 20:19:40 -07:00
Girish Ramakrishnan 04debe3ea3 port80 requirement is more complex 2018-09-12 15:57:01 -07:00
Girish Ramakrishnan 6ba574432a calculate subdomain correctly for non-wildcard domains 2018-09-12 15:55:20 -07:00
Girish Ramakrishnan 96075c7c20 Fix double callback 2018-09-12 14:43:15 -07:00
Girish Ramakrishnan 64665542bc select app's cert based on domain's wildcard flag
this also removes the confusing type field in the bundle. we instead
check the current nginx config to see what cert is in use.
2018-09-12 14:22:54 -07:00
Girish Ramakrishnan 4312096dd2 Add a wildcard provider option 2018-09-12 13:12:40 -07:00
Girish Ramakrishnan 54d2a4f17b rework args to ensureCertificate 2018-09-12 12:50:04 -07:00
Girish Ramakrishnan 1d829c4af2 Allow wildcard only with programmable DNS backend 2018-09-12 12:36:13 -07:00
Girish Ramakrishnan 94b079fa7b Show the title in port bindings instead of the long description 2018-09-12 11:22:02 -07:00
Girish Ramakrishnan dc4dc05628 Fixup changes file 2018-09-12 10:00:16 -07:00
Johannes Zellner b2469de9b0 Do not require dashboard remote branch with the same name for hotfix 2018-09-12 12:56:24 +02:00
Johannes Zellner 812d3576a9 Use mongodb rest api for backup and restore 2018-09-12 12:56:24 +02:00
Johannes Zellner 6012eb7898 docker inspect and the rest api have a different output format 2018-09-12 12:56:24 +02:00
Johannes Zellner a591b5910e Restify mongodb addon 2018-09-12 12:56:24 +02:00
Johannes Zellner 1e084e98d1 Change mongodb addon from env vars file to passing directly 2018-09-12 12:56:24 +02:00
Johannes Zellner b4224a7f8d Call the rest route on redis backup
The addons are an array of key/value
2018-09-12 12:56:24 +02:00
Johannes Zellner ab8a010b94 Redis does not use the vars.sh file anymore 2018-09-12 12:56:24 +02:00
Johannes Zellner 4c164c17cf Support internal only addon configs with redis persistent token 2018-09-12 12:56:24 +02:00
Johannes Zellner 650f181a07 Provision redis addon with new set of required env vars 2018-09-12 12:56:24 +02:00
Girish Ramakrishnan 97ab521038 make ensureCertificate check any wildcard cert 2018-09-11 23:47:23 -07:00
Girish Ramakrishnan c138c4bb5f acme2: implement wildcard certs 2018-09-11 23:15:50 -07:00
Girish Ramakrishnan 1067ff882a Move type validation to routes logic 2018-09-11 22:17:40 -07:00
Girish Ramakrishnan b6ad6e121b refactor to validateTlsConfig 2018-09-11 21:53:18 -07:00
Girish Ramakrishnan a756345138 consolidate hyphenatedSubdomains handling 2018-09-11 21:41:50 -07:00
Girish Ramakrishnan 35f69cfea9 acme2: wait for dns 2018-09-11 19:41:41 -07:00
Girish Ramakrishnan 3f0bc6165b Enhance waitForDns to support TXT records 2018-09-11 19:41:38 -07:00
Girish Ramakrishnan d0dde04695 acme2: dns authorization 2018-09-10 21:46:53 -07:00
Girish Ramakrishnan 2f38a4018c pass domain arg to getCertificate API 2018-09-10 20:48:47 -07:00
Girish Ramakrishnan 2c76716bc7 rename func 2018-09-10 20:35:48 -07:00
Girish Ramakrishnan f38b87c660 lint 2018-09-10 20:30:38 -07:00
Girish Ramakrishnan 9bac2acc37 Fix callback use 2018-09-10 17:39:13 -07:00
Girish Ramakrishnan 68536b6d7d acme2 implementation 2018-09-10 16:26:24 -07:00
Girish Ramakrishnan 1d0a52404a Fix tests 2018-09-10 13:45:05 -07:00
Girish Ramakrishnan 0373d86349 Fix error code 2018-09-10 11:22:29 -07:00
Girish Ramakrishnan 017460b497 acme -> acme1 2018-09-10 10:57:48 -07:00
Girish Ramakrishnan 8efd496579 storage: add access denied function (unused) 2018-09-10 10:41:08 -07:00
Girish Ramakrishnan 0f5c290785 we now return 424 2018-09-10 10:37:15 -07:00
Girish Ramakrishnan 229fe0f66f Add 3.1.4 changes 2018-09-10 09:28:08 -07:00
Girish Ramakrishnan c79f43bb27 do spaces: sfo2 is now available 2018-09-10 09:27:08 -07:00
Girish Ramakrishnan efa36ab161 cloudflare: Add the chain message 2018-09-07 11:46:10 -07:00
Girish Ramakrishnan 191c85d01f cloudflare: priority is now an integer 2018-09-07 11:44:31 -07:00
Girish Ramakrishnan 88330ab415 Return 424 for external errors 2018-09-07 11:27:19 -07:00
Girish Ramakrishnan 76f5b22c07 dns: implement wildcard dns validation 2018-09-06 20:45:10 -07:00
Girish Ramakrishnan 184ad3bc4e wildcard dns is now a provider 2018-09-06 20:12:25 -07:00
Girish Ramakrishnan 0639ca1594 Make wildcard a separate provider
this is required because the config object is not returned for
locked domains and the UI display for the provider field is then
wrong.
2018-09-06 20:09:08 -07:00
Girish Ramakrishnan e620a26c04 typo 2018-09-06 20:05:08 -07:00
Girish Ramakrishnan 867c3595b2 more changes 2018-09-06 13:18:26 -07:00
Girish Ramakrishnan df66d77a68 cloudflare: Fix crash when there is an external error updating dns records 2018-09-06 12:26:11 -07:00
Girish Ramakrishnan 5e919b90f5 Better fix for grub 2018-09-06 11:56:50 -07:00
Girish Ramakrishnan 428269f503 3.1.3 changes 2018-09-06 00:41:45 -07:00
Girish Ramakrishnan b03e26a510 Fix typo 2018-09-06 00:41:37 -07:00
Girish Ramakrishnan 1e15b63a4a prevent deletion of mail domain as well 2018-09-06 00:16:12 -07:00
Girish Ramakrishnan 8d5e70f6aa lock the admin domain based on the edition 2018-09-06 00:15:45 -07:00
Girish Ramakrishnan 91a1bc7a01 move verifyOperator to users routes 2018-09-06 00:10:09 -07:00
Girish Ramakrishnan 0e3f9c9569 Move verifyAppOwnership to app route 2018-09-06 00:09:42 -07:00
Girish Ramakrishnan 2ad0a57fc1 Typo 2018-09-05 23:59:40 -07:00
Girish Ramakrishnan aa0a4ae3e9 Handle locked domains 2018-09-05 23:23:27 -07:00
Girish Ramakrishnan ff9c4b407f Add help text 2018-09-05 21:46:26 -07:00
Girish Ramakrishnan c3b01d477e Typo 2018-09-05 21:31:44 -07:00
Girish Ramakrishnan 3c0641745b backups: Hide prefix for noop 2018-09-05 17:32:53 -07:00
Girish Ramakrishnan 7186a0c41b information text for hyphenated subdomain 2018-09-05 17:20:17 -07:00
Girish Ramakrishnan 4c3bc7450e domain: hide del button for admin domain 2018-09-05 17:15:30 -07:00
Girish Ramakrishnan def3521ee1 Do not allow admin domain to be deleted 2018-09-05 17:12:02 -07:00
Girish Ramakrishnan 02f04e2d33 Disable various views for non-operators 2018-09-05 15:35:30 -07:00
Girish Ramakrishnan 3d004b3dcc Disable various server/operator routes based on edition
The initial idea was to put an owner flag but this means that the
owner will be visible inside apps.
2018-09-05 15:31:58 -07:00
Johannes Zellner 97b6e4c672 Just display subscription error message in the ui 2018-09-05 17:14:01 +02:00
Girish Ramakrishnan 0439bd8869 move addSpacesSuffix to model logic 2018-09-04 16:37:08 -07:00
Girish Ramakrishnan 10b4043358 Add alternateDomains to app install route 2018-09-04 16:27:35 -07:00
Girish Ramakrishnan ac3b0f0082 Add spaces suffix for alternate domains 2018-09-04 14:12:50 -07:00
Girish Ramakrishnan 2fd1caa2aa caas: Fix display of alternateDomain 2018-09-04 12:10:21 -07:00
Girish Ramakrishnan d49a1dea7a Fix usage of domains.fqdn 2018-09-04 11:35:01 -07:00
Girish Ramakrishnan ec9c96da6f Fix comments 2018-09-04 10:48:54 -07:00
Johannes Zellner 2de630e491 Put the app owner also into ldap groups
Fixes #585
2018-09-03 17:14:11 +02:00
Johannes Zellner 3af358b9bc List app owner as admins in ldap search 2018-09-03 16:08:05 +02:00
Johannes Zellner b61478edc9 Attach req.app for further use in ldap routes 2018-09-03 15:38:50 +02:00
Johannes Zellner b23afdd32d Fix tests to match the adjusted purchase logic 2018-09-01 11:53:05 +02:00
Girish Ramakrishnan 43055da614 Add route to let admin set user password 2018-08-31 14:35:01 -07:00
Girish Ramakrishnan 2c3f1ab720 Fix the error messages 2018-08-31 14:06:06 -07:00
Johannes Zellner 35a31922a5 Always run all tests 2018-08-31 22:25:06 +02:00
Girish Ramakrishnan bf432dc26f Revert "Disable memory accounting setup"
This reverts commit ad22df6f71.

This actually serves the purpose of enabling swap.

https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh
2018-08-31 13:21:33 -07:00
Girish Ramakrishnan cb25217c48 Fix the edition name 2018-08-31 08:06:04 -07:00
Johannes Zellner 18cc93799e Fully rely on the appstore during 'purchase' call 2018-08-31 10:53:35 +02:00
Girish Ramakrishnan fc3bc48f47 Fix crash when location is not provided 2018-08-30 22:08:48 -07:00
Girish Ramakrishnan fc96f59ecc Add edition checks 2018-08-30 21:20:49 -07:00
Girish Ramakrishnan 534a00b3af Disallow dot in location in hyphenatedSubdomains 2018-08-30 21:03:54 -07:00
Girish Ramakrishnan 619d1e44e5 Move validateHostname to domains code 2018-08-30 20:54:15 -07:00
Girish Ramakrishnan 068113bd5d remove redundant domain arg to domains.fqdn 2018-08-30 19:57:12 -07:00
Girish Ramakrishnan ca16072d90 hypenatedSubdomains: do not hyphenate txt dns records 2018-08-30 16:17:56 -07:00
Girish Ramakrishnan 6fac59cf9d cloudron-setup: print before we shift all the args 2018-08-30 14:30:49 -07:00
Girish Ramakrishnan f953cfc4d5 cloudron-setup: print the args to the log file 2018-08-30 14:06:25 -07:00
Johannes Zellner 7a1723d173 Fix app tests 2018-08-30 00:32:38 +02:00
Johannes Zellner b6643518f6 Adjust apps test to how we check subscriptions 2018-08-29 23:57:59 +02:00
Johannes Zellner ab70bc663d No need to show button to setup billing
Either it has a subscription or not, no trials anymore
This will not show any cc setup button now for other plans like
education
2018-08-29 23:24:24 +02:00
Johannes Zellner 0cfe931cd1 We do not have trials anymore 2018-08-29 23:22:47 +02:00
Johannes Zellner 91470156c9 Only remove all app container on uninstall
For update and configure, we do not want to purge potential docker addon
created ones. They are managed by the app itself.
2018-08-29 21:28:58 +02:00
Johannes Zellner 40c6ab5615 Remove unused require 2018-08-29 21:25:02 +02:00
Girish Ramakrishnan 29bddb5fcb Fix derivation of adminFqdn 2018-08-28 22:35:02 -07:00
Girish Ramakrishnan 6cc4e44f22 pass edition to update.sh 2018-08-28 22:14:27 -07:00
Girish Ramakrishnan cb7d160346 Add more backup interval secs 2018-08-28 22:10:17 -07:00
Girish Ramakrishnan 507c8b8786 Add hyphenatedSubdomains checkbox to setup page 2018-08-28 21:59:03 -07:00
Girish Ramakrishnan 60107147c2 derive features from edition 2018-08-28 21:58:59 -07:00
Girish Ramakrishnan 976cf1740e Put edition in status route 2018-08-28 21:43:25 -07:00
Girish Ramakrishnan be2afec86b spaces: Fix text 2018-08-28 20:32:07 -07:00
Girish Ramakrishnan 22cdd3f55e spaces: add username suffix to location 2018-08-28 20:27:17 -07:00
Girish Ramakrishnan d316d216db spaces: use edition instead of setting 2018-08-28 19:36:26 -07:00
Girish Ramakrishnan e0cd7999eb Make spaces an edition instead of setting 2018-08-28 18:31:48 -07:00
Johannes Zellner 4f7242fa6a add --edition option to cloudron-setup 2018-08-28 18:06:25 -07:00
Johannes Zellner 964da5ee52 Send the edition in the config route 2018-08-28 18:05:45 -07:00
Johannes Zellner baa99d1a44 add edition property to cloudron.conf 2018-08-28 18:05:15 -07:00
Girish Ramakrishnan 6d1cb1bb14 Do not update grub packages
It looks on some VPS, the grub then asks the user to re-install
since the disk name has changed/moved (presumably because the
image was created on a server with a different disk name)
2018-08-28 14:33:07 -07:00
Girish Ramakrishnan dd53d0d575 caas+spaces: location suffix fix 2018-08-28 14:22:40 -07:00
Girish Ramakrishnan f7e6c5cd40 Add galaxygate as a provider 2018-08-28 12:25:16 -07:00
Girish Ramakrishnan 0f6c0a2ccd Use spaces suffix that replaces dots in username
This assumes usernames only have . or - but not both
2018-08-28 12:23:14 -07:00
Girish Ramakrishnan ad22df6f71 Disable memory accounting setup
Overall, this is outside the scope of Cloudron
2018-08-28 12:18:31 -07:00
Girish Ramakrishnan 937a165711 spaces: Strip the trailing username when configuring 2018-08-28 10:38:53 -07:00
Girish Ramakrishnan 22c402ca3d clone: subdomain hyphenation 2018-08-27 21:40:49 -07:00
Girish Ramakrishnan eddbd4fddc Do the filter later 2018-08-27 21:06:07 -07:00
Girish Ramakrishnan 0e43ca31a3 spaces: add username suffix when installing apps 2018-08-27 20:45:09 -07:00
Girish Ramakrishnan 8e572a7c23 Fix changelog 2018-08-27 16:05:01 -07:00
Girish Ramakrishnan 9c90a20b4d Get token name as input 2018-08-27 16:04:16 -07:00
Girish Ramakrishnan 764e7e7d1f Fix indent 2018-08-27 15:40:23 -07:00
Girish Ramakrishnan 0e8cb00233 Display token name 2018-08-27 15:34:46 -07:00
Girish Ramakrishnan 0a1a011338 Move the API token to account page
The OAuth page is less and less useful. Moreover, the tokens are
actually tied to the user and not for the system.
2018-08-27 15:26:52 -07:00
Girish Ramakrishnan 3dfcd9324d invite -> setup link 2018-08-27 15:08:09 -07:00
Girish Ramakrishnan e49b57294d Give optional name for tokens 2018-08-27 14:59:52 -07:00
Girish Ramakrishnan badb6e4672 add note on clients.appId 2018-08-27 14:30:39 -07:00
Girish Ramakrishnan d09ff985af remove all user tokens when user is deleted 2018-08-27 14:05:22 -07:00
Girish Ramakrishnan 3e4ac4a0ca Keep it short (and abstract) 2018-08-27 13:50:13 -07:00
Girish Ramakrishnan be1795d50d domains: make the certs setup more descriptive 2018-08-27 13:19:57 -07:00
Girish Ramakrishnan 0b0b06baa9 certs: Rename Self-Signed to custom 2018-08-27 12:04:55 -07:00
Girish Ramakrishnan b789cd2af0 Fix incorrect title of invitation dialog 2018-08-27 11:43:24 -07:00
Girish Ramakrishnan a3130c8aab inviteLink is not available during user create anymore 2018-08-27 10:40:58 -07:00
Girish Ramakrishnan 0843d51c98 Check for existing port bindings in udpPorts 2018-08-26 17:50:17 -07:00
Girish Ramakrishnan 9a1b5dd5cc Add 3.1.1 changelog 2018-08-25 18:32:02 -07:00
Girish Ramakrishnan 6f398144cb validate hyphenatedSubdomain 2018-08-25 18:29:55 -07:00
Girish Ramakrishnan d91df50b9f caas: add hyphenateSubdomain property 2018-08-25 17:49:31 -07:00
Johannes Zellner 99ead48fd5 Add more changes 2018-08-25 11:14:14 +02:00
Johannes Zellner 922b6d2b18 Also renew alternate domain certificates
Part of #583
2018-08-25 11:04:53 +02:00
Girish Ramakrishnan 6a3b45223a Better name for internal functions 2018-08-24 15:38:44 -07:00
Girish Ramakrishnan 93b0f39545 ensureCertificate: make it take appDomain object 2018-08-24 15:07:13 -07:00
Girish Ramakrishnan dbe86af31e Make getApi takes a string domain 2018-08-24 15:00:19 -07:00
Girish Ramakrishnan 3ede50a141 remove unused function 2018-08-24 14:11:02 -07:00
Girish Ramakrishnan e607fe9a41 Specify subdomain fields explicitly 2018-08-24 10:39:59 -07:00
Johannes Zellner 0871403c0a Support hyphenated subdomains in install and configure dialogs 2018-08-22 17:25:27 +02:00
Johannes Zellner 43d125b216 Send hyphenatedSubdomains as non restricted property 2018-08-22 17:19:18 +02:00
Johannes Zellner 9467a2922a Return hyphenated subdomain name in getName() 2018-08-22 14:13:48 +02:00
Johannes Zellner b35c81e546 Handle hyphenatedSubdomains in the backend verifyDnsConfig() 2018-08-22 12:16:19 +02:00
Johannes Zellner 59700e455e Use the full domain record for domains.fqdn() 2018-08-22 12:15:46 +02:00
Johannes Zellner e8fcfc4594 Allow to specify hyphenatedSubdomains for a domain 2018-08-22 11:59:42 +02:00
Johannes Zellner 53a34d9352 Support hyphenatedSubdomains property in domains view 2018-08-22 11:54:37 +02:00
Johannes Zellner 9bac7e8124 Move the comment where it belongs 2018-08-22 11:02:06 +02:00
Girish Ramakrishnan 210c453508 More changes 2018-08-21 21:25:07 -07:00
Girish Ramakrishnan fe23551b04 Show the doc link in the post install confirm body 2018-08-21 19:21:03 -07:00
Girish Ramakrishnan 442d4e5c6f Fix failing tests 2018-08-21 18:57:11 -07:00
Girish Ramakrishnan af63cb936d More changes 2018-08-21 18:47:12 -07:00
Girish Ramakrishnan b4c9f64721 Issue token on password reset and setup 2018-08-21 18:42:18 -07:00
Girish Ramakrishnan c64a29e6fc More 3.1.0 changes 2018-08-21 17:06:51 -07:00
Johannes Zellner f05df7cfef Allow set admin flag on user creation 2018-08-21 17:12:46 +02:00
Johannes Zellner f4a76a26af Remove left-over docker proxy start call in platform.js 2018-08-21 15:31:53 +02:00
Girish Ramakrishnan f338e015d5 Revert "Also allow docker in containers spawned by an authorized app"
This reverts commit 4f336a05fc.

This is not required by an app yet. Besides, it breaks tests
2018-08-20 20:10:16 -07:00
Girish Ramakrishnan 89cf8167e6 Make tests work 2018-08-20 20:10:14 -07:00
Girish Ramakrishnan 484b6477d3 Fix duplicate id in app configure form 2018-08-20 09:44:30 -07:00
Johannes Zellner d5194cfdc9 Remove nativeLogging docker addon support
Was only required for eclipse che
2018-08-20 15:22:10 +02:00
Johannes Zellner eb07d3d543 Drop all custom network configs in docker proxy 2018-08-20 15:19:08 +02:00
Girish Ramakrishnan 6a1a697820 Split the invite route into two 2018-08-17 16:27:29 -07:00
Girish Ramakrishnan 8ebe04c2ff Do not send invite email when invite button is pressed 2018-08-17 16:26:16 -07:00
Girish Ramakrishnan e5cc81d8fa Fix test name 2018-08-17 13:45:10 -07:00
Johannes Zellner 3640b0bd0e Allow to override the logging backend for app like che 2018-08-17 15:30:37 +02:00
Johannes Zellner 4d4ce9b86e Bare bones support of docker exec through the proxy 2018-08-17 15:30:23 +02:00
Johannes Zellner db385c6770 Ensure the docker proxy tests cleanup correctly 2018-08-17 13:44:12 +02:00
Johannes Zellner 2925e98d54 Make PUT requests through the docker proxy work 2018-08-17 12:33:46 +02:00
Girish Ramakrishnan 75ee40865e 3.0.2 changes 2018-08-16 23:30:20 -07:00
Girish Ramakrishnan af58e56732 Fix issue where normal users are shown all apps 2018-08-16 20:04:03 -07:00
Johannes Zellner dc3e3f5f4d Ensure we pipe the parsed body again upstream to docker 2018-08-16 14:28:51 +02:00
Johannes Zellner 83304ff66c Verify that docker logs is correctly reporting another logging driver 2018-08-16 12:07:15 +02:00
Johannes Zellner 575e0cea33 Use syslog for containers created in apps 2018-08-16 11:37:08 +02:00
Girish Ramakrishnan 0bf3b45ddc Fix bind mapping logic 2018-08-15 16:52:30 -07:00
Johannes Zellner 826a0e7708 Add test case for docker logs through the proxy 2018-08-15 18:16:03 +02:00
Johannes Zellner 0522d1e3c4 Simply prefix all docker volume mounts with the app data dir 2018-08-15 18:00:51 +02:00
Johannes Zellner 12970bf50a Add some debugs for volume rewriting 2018-08-15 16:51:10 +02:00
Johannes Zellner 4a739213bf When creating a container the Labels are toplevel 2018-08-15 12:51:52 +02:00
Johannes Zellner 4f336a05fc Also allow docker in containers spawned by an authorized app 2018-08-15 12:35:34 +02:00
Girish Ramakrishnan c3dacba894 dockerproxy: rewrite labels and binds 2018-08-14 20:49:41 -07:00
Girish Ramakrishnan f88c01eea6 dockerproxy: Add app authorization 2018-08-14 20:04:15 -07:00
Girish Ramakrishnan 15b0dfcb60 rename variable 2018-08-14 19:03:59 -07:00
Girish Ramakrishnan ebd27b444d dockerproxy: use express 2018-08-14 18:59:41 -07:00
Johannes Zellner ee1c587922 Overwrite the docker container network in the proxy 2018-08-14 22:54:02 +02:00
Johannes Zellner 4da91ec90d Make the docker proxy work 2018-08-14 22:54:02 +02:00
Girish Ramakrishnan 3cf3c36e86 Fix tests 2018-08-13 22:54:56 -07:00
Girish Ramakrishnan 672d6b0856 Add backup interval
Part of cloudron/box#568
2018-08-13 22:40:05 -07:00
Girish Ramakrishnan 8bd6c9933f Add interval secs
Part of #568
2018-08-13 22:35:38 -07:00
Girish Ramakrishnan 2e0a7dcd47 Fix migration filename 2018-08-13 22:31:58 -07:00
Girish Ramakrishnan 0c066fafa2 remove backup default comment 2018-08-13 22:22:46 -07:00
Johannes Zellner 714c205538 Set the correct debug label 2018-08-13 22:06:28 +02:00
Johannes Zellner 00041add55 No need to pull in underscore to build an object 2018-08-13 22:01:51 +02:00
Johannes Zellner 7f5fe12712 Use DOCKER_HOST to make the cli work out of the box 2018-08-13 21:59:02 +02:00
Johannes Zellner 441fdb81f8 Move docker proxy into its own file 2018-08-13 21:14:17 +02:00
Johannes Zellner fb02e8768c Remove unused require 2018-08-13 21:05:07 +02:00
Johannes Zellner 14f0f954b7 Use docker proxy over DOCKER_URL env var when docker addon is used 2018-08-13 20:47:15 +02:00
Johannes Zellner 10f0d48b2a Use docker proxy port from config 2018-08-13 20:41:02 +02:00
Johannes Zellner 6933184c2e Revert "Expose the host /app/data folder when localstorage and docker addons are used"
We will use the docker proxy for that

This reverts commit b3aa59de19.
2018-08-13 20:39:23 +02:00
Johannes Zellner a1b983de23 Initial code for docker addon proxy 2018-08-13 20:38:39 +02:00
Johannes Zellner b3aa59de19 Expose the host /app/data folder when localstorage and docker addons are used 2018-08-13 19:40:41 +02:00
Girish Ramakrishnan 796ced999f Add some 3.1 changes 2018-08-13 09:18:44 -07:00
Girish Ramakrishnan 6c574ead94 Make UDP ports configurable
Part of cloudron/box#504
2018-08-13 09:15:21 -07:00
Girish Ramakrishnan 353b5e07bf Save correct type of port in db
Part of #504
2018-08-13 08:33:17 -07:00
Girish Ramakrishnan c29eef4c14 Set the udp ports in docker configuration
Part of #504
2018-08-12 22:47:59 -07:00
Girish Ramakrishnan 8bc7dc9724 Pass the manifest to validatePortBindings 2018-08-12 22:37:36 -07:00
Girish Ramakrishnan 60984d18dd Add type field to port bindings table
Part of #504
2018-08-12 22:32:36 -07:00
Girish Ramakrishnan df1dc80fc1 Change the internal portBindings representation
Part of #504
2018-08-12 22:32:31 -07:00
Girish Ramakrishnan 8e2f0cdf73 Update cloudron-manifestformat (udpPorts) 2018-08-12 19:00:28 -07:00
Ian Fijolek bf1e19f8e6 Add more detailed checking of DMARC
Fixes #570
2018-08-12 13:47:24 -07:00
Girish Ramakrishnan 31a62313bb Reconfigure email apps when email is enabled/disabled 2018-08-12 13:21:17 -07:00
Girish Ramakrishnan 9a7214ea07 Update manifestformat for docker addon 2018-08-10 12:31:46 -07:00
Johannes Zellner 4499f08357 Revert "Remove _docker addon"
This reverts commit d6f49eb54f.
2018-08-09 11:54:46 +02:00
Girish Ramakrishnan 8671c4c015 3.0.1 changes 2018-08-06 19:45:46 -07:00
Girish Ramakrishnan 2612cc18fa Expire existing webadmin token so that the UI gets a new token
This is because we added a new appstore scope
2018-08-06 19:40:46 -07:00
Girish Ramakrishnan 36a21acae8 skip verification for prereleases because we remove it from release.json 2018-08-06 16:23:23 -07:00
Johannes Zellner 4dacf7064f Apps already use singular document tag 2018-08-06 22:22:49 +02:00
Johannes Zellner e900e4de77 Add Documents category 2018-08-06 21:46:24 +02:00
Girish Ramakrishnan 4ce6939b79 spaces: show based on plan id 2018-08-06 10:53:16 -07:00
Girish Ramakrishnan 8430fd1473 Fix more errors in clone UI 2018-08-06 00:46:10 -07:00
Girish Ramakrishnan ac7c54e273 Fix errors in the clone form 2018-08-06 00:34:40 -07:00
Girish Ramakrishnan 1ed4710c68 Better error message 2018-08-05 23:38:49 -07:00
Girish Ramakrishnan 6c9a3b530d Display restore error on page load 2018-08-05 23:30:22 -07:00
Girish Ramakrishnan 75b6688734 Clear timeout when setting backup config 2018-08-05 22:29:27 -07:00
Girish Ramakrishnan 2f2c70d1df Set the users when creating group 2018-08-05 22:19:54 -07:00
Girish Ramakrishnan a78c991330 Give some fixed width to the columns 2018-08-05 22:10:45 -07:00
Girish Ramakrishnan f7a7e4e95a Fix text in account setup screen 2018-08-05 21:58:07 -07:00
Girish Ramakrishnan 8f9349ec53 Remove double "this" 2018-08-05 21:43:34 -07:00
Girish Ramakrishnan bc6be6a9ad Fix indent 2018-08-05 21:40:18 -07:00
Girish Ramakrishnan a9b7c2795a Fix styling 2018-08-05 21:34:47 -07:00
Girish Ramakrishnan cd81cc8cb8 Refine the text 2018-08-05 21:09:16 -07:00
Girish Ramakrishnan a8ba0b91f7 Allow subdomain in the location field
This allows one to easily add "dev.staging@domain.com" etc without having to create
yet another domain. This plays well with the concept that we have a
mail domain for every domain. So we get mails from @domain.com working for
these subdomain installations.
2018-08-04 09:37:18 -07:00
Girish Ramakrishnan 473b35d807 Query backup config only for admins 2018-08-03 23:35:37 -07:00
Girish Ramakrishnan 0c04d5bfc8 spaces: fetch users/groups/domains 2018-08-03 23:27:21 -07:00
Girish Ramakrishnan eed460f435 Fetch complete app object for owner 2018-08-03 23:00:25 -07:00
Girish Ramakrishnan d742982973 spaces: default the access restriction to just the user 2018-08-03 22:51:53 -07:00
Girish Ramakrishnan c8263077a2 appstore app object has no location or accessRestriction 2018-08-03 22:29:52 -07:00
Girish Ramakrishnan 95540e8cbc Do ownership check in exec route 2018-08-03 22:19:42 -07:00
Girish Ramakrishnan 9ebd22d6f7 add api note 2018-08-03 22:19:36 -07:00
Girish Ramakrishnan eae01bdbd9 appId is not needed in configure route 2018-08-03 18:44:30 -07:00
Girish Ramakrishnan 1ebafbbc20 spaces: fixup user interface 2018-08-03 18:38:00 -07:00
Girish Ramakrishnan 1cf5807fb9 Send spaces config in config route
This is here because normal users cannot access settings route
2018-08-03 18:26:16 -07:00
Girish Ramakrishnan cc7824681b Return ownerId in apps response 2018-08-03 18:15:22 -07:00
Girish Ramakrishnan a525bb0257 Missed this 2018-08-03 17:47:02 -07:00
Girish Ramakrishnan a0a523ae71 spaces: verify app ownership in app management routes 2018-08-03 17:35:58 -07:00
Girish Ramakrishnan cf5cf9e42f Remove usage of tokenScopes and caps 2018-08-03 10:13:57 -07:00
Girish Ramakrishnan fba70d888b Remove tokenScopes
decided that the UI won't use this any more and will just the admin flag
2018-08-03 10:07:23 -07:00
Girish Ramakrishnan ce9fc7b3f7 Better error message 2018-08-03 09:46:22 -07:00
Girish Ramakrishnan 3d4df8e26c Add test for spaces config 2018-08-03 09:46:16 -07:00
Girish Ramakrishnan 7969dff043 Add UI for enabling spaces 2018-08-03 09:44:56 -07:00
Girish Ramakrishnan d3f9647cd5 Add settings for Spaces 2018-08-03 09:40:57 -07:00
Girish Ramakrishnan d73f7304b3 Copy admin flag 2018-08-03 09:34:58 -07:00
Girish Ramakrishnan 2a49569805 Send admin flag in the profile 2018-08-03 09:34:25 -07:00
Girish Ramakrishnan 47c8700d42 make scopesForUser async 2018-08-03 09:34:19 -07:00
Girish Ramakrishnan d302dbc634 Fix tests 2018-08-02 14:59:50 -07:00
Johannes Zellner 4400b0117a Fix linter issues 2018-08-02 22:17:27 +02:00
Johannes Zellner 739c91b1c6 Do not throw errors if a group has a uid which is not yet known
This can happen if the users have not yet loaded fully
2018-08-02 22:16:57 +02:00
Girish Ramakrishnan eab3cd6b2b ownerId for domains is not implemented yet 2018-08-01 18:53:49 -07:00
Girish Ramakrishnan 92151b1e42 Add note on npm rebuild 2018-08-01 18:37:40 -07:00
Girish Ramakrishnan 621d00a5c6 GPG verify releases
Part of #189
2018-08-01 17:16:42 -07:00
Girish Ramakrishnan 510115ade9 Show danger color if update fails 2018-08-01 17:02:09 -07:00
Girish Ramakrishnan 8c2d79b75e Show app id in info dialog 2018-08-01 12:37:17 -07:00
Girish Ramakrishnan 5bd7cd6749 Check if syslog binary exists first
The command fails in a subshell and strange things happen

==> installer: update cloudron-syslog
/tmp/box-src-hotfix/scripts/installer.sh: line 99: /usr/local/cloudron-syslog/bin/cloudron-syslog: No such file or directory
/tmp/box-src-hotfix/scripts/installer.sh: line 99: : command not found
2018-08-01 12:18:56 -07:00
Girish Ramakrishnan 5fb525f011 Commit binary public key
GPG's --verify option can only use binary format
2018-07-31 20:25:46 -07:00
Girish Ramakrishnan d8257c4745 refactor updater logic into updater.js 2018-07-31 20:20:10 -07:00
Girish Ramakrishnan ef5dc7311f Do not encrypt empty path 2018-07-31 19:41:03 -07:00
Girish Ramakrishnan 498642b670 Fix debugs 2018-07-31 19:32:56 -07:00
Girish Ramakrishnan daa8514654 Pass the message and not error object 2018-07-31 10:46:35 -07:00
Girish Ramakrishnan 608de479fb Add releases public key
Part of #189
2018-07-31 10:34:01 -07:00
Johannes Zellner 51f7a47ea6 Fix db migration script 2018-07-30 22:58:09 +02:00
Johannes Zellner 1a31fb78e5 Add homescreen icons for mobile 2018-07-30 22:05:20 +02:00
Girish Ramakrishnan 480aed9f33 Update mail addon 2018-07-30 12:37:37 -07:00
Girish Ramakrishnan 97f4d5e3ac Show busy indicator when toggling email 2018-07-30 11:30:49 -07:00
Girish Ramakrishnan 74ae0a1787 More changes 2018-07-30 10:46:14 -07:00
Girish Ramakrishnan ed8351b0dc Add re-installation check
Fixes #536
2018-07-30 10:10:30 -07:00
Girish Ramakrishnan a1070b7da3 storage: fix file not found message 2018-07-30 07:47:52 -07:00
Girish Ramakrishnan d0b17f7e7b Delete any endpoint configuration when using s3 2018-07-30 07:29:22 -07:00
Girish Ramakrishnan 3067d87ca9 handle decryption errors 2018-07-29 21:01:20 -07:00
Girish Ramakrishnan eb74aaff3b Display restore errors
Part of cloudron/box#505
2018-07-29 20:48:37 -07:00
Girish Ramakrishnan 56ca6f449f Set any restore errors in status object
Fixes #505
2018-07-29 20:31:58 -07:00
Girish Ramakrishnan 9108b665a8 restore: show encrytion field for rsync format 2018-07-29 19:51:44 -07:00
Girish Ramakrishnan e449147ed4 setup: Make it wider 2018-07-29 19:46:52 -07:00
Girish Ramakrishnan 53e82876dd setup: add link to hide advanced settings 2018-07-29 19:43:36 -07:00
Girish Ramakrishnan 99ad3e499d s3: do not rely on entry.s3 2018-07-29 09:00:57 -07:00
Girish Ramakrishnan 7182ad4205 s3: Remove usage of entries.s3 2018-07-29 07:51:12 -07:00
Girish Ramakrishnan dd4a4518b3 Allow backup key to be set for rsync format
Part of #440
2018-07-28 09:13:42 -07:00
Girish Ramakrishnan 0b10e2b332 s3: add listDir
Fixes #440
2018-07-28 09:05:44 -07:00
Girish Ramakrishnan f546d53ca2 gcs: add listDir
part of #440
2018-07-28 03:51:32 -07:00
Girish Ramakrishnan 2bcc0eef96 fs: downloadDir is unused 2018-07-27 16:56:30 -07:00
Girish Ramakrishnan a5daad2e1a rsync: encrypted download (fs backend)
Part of #440
2018-07-27 16:06:13 -07:00
Girish Ramakrishnan b3c8767d79 rsync: encrypted upload (fs backend)
Part of #440
2018-07-27 15:34:48 -07:00
Girish Ramakrishnan f97f528f05 backup: Implement downloadDir using listDir 2018-07-27 15:24:35 -07:00
Girish Ramakrishnan ba8a549235 fs: open the source stream using download() 2018-07-27 15:23:48 -07:00
Girish Ramakrishnan 737541f707 storage: standardize the listDir API 2018-07-27 15:23:26 -07:00
Girish Ramakrishnan 94cb222869 filesystem: Use listDir
We can now refactor all the iterating/fs write logic into backups.js
(required for restoring encrypted backups)
2018-07-27 14:09:52 -07:00
Girish Ramakrishnan df98847535 Remove backupDone from storage interface
This is only used by caas
2018-07-27 12:08:19 -07:00
Girish Ramakrishnan 3d22458f9b Add the 3.0 UI changes 2018-07-27 00:08:08 -07:00
Girish Ramakrishnan d76381fa26 More 3.0 changes 2018-07-27 00:04:31 -07:00
Girish Ramakrishnan a9e46c64b1 Show group members 2018-07-26 23:58:25 -07:00
Girish Ramakrishnan 606cd4da36 Allow - in mailbox names (for no-reply) 2018-07-26 23:48:21 -07:00
Girish Ramakrishnan 554006683e Only unset of admin flag is disallowed 2018-07-26 23:43:44 -07:00
Girish Ramakrishnan fb85770fd3 admin group is now gone 2018-07-26 23:42:38 -07:00
Girish Ramakrishnan 0966edd8fe Fix missing require 2018-07-26 22:36:20 -07:00
Girish Ramakrishnan 78a2176d1d Make admin simply a boolean instead of group
This simplifies a lot of logic. Keeping an admin group has no benefit
2018-07-26 22:29:57 -07:00
Girish Ramakrishnan 9e9e651714 admin is now simply a flag 2018-07-26 15:54:21 -07:00
Girish Ramakrishnan 314da7ace8 Fix API of Client.createUser 2018-07-26 15:52:10 -07:00
Girish Ramakrishnan 39848a25a8 Refactor a bit 2018-07-26 15:35:41 -07:00
Girish Ramakrishnan ea946396e7 Use users.isAdmin in all places 2018-07-26 13:23:06 -07:00
Girish Ramakrishnan b4d5def56d Revert role support 2018-07-26 13:23:06 -07:00
Johannes Zellner 477abf53f3 Add initial 3.0.0 changes 2018-07-26 21:36:43 +02:00
Girish Ramakrishnan 54103ca120 Revert role support 2018-07-26 11:38:20 -07:00
Girish Ramakrishnan 0cb03e3789 Add REST route for platform config
Fixes #566
2018-07-25 14:09:15 -07:00
Girish Ramakrishnan f4d7d4e7f2 Set the domain field 2018-07-25 11:41:42 -07:00
Girish Ramakrishnan be86a3022f Call the new setDnsRecords route 2018-07-25 10:52:06 -07:00
Girish Ramakrishnan c09ae963e9 merge set/addDnsRecords
This also makes the update mail domain route redundant
2018-07-25 10:51:21 -07:00
Girish Ramakrishnan fa30312cea lint 2018-07-25 10:34:57 -07:00
Girish Ramakrishnan c063267c72 Split setting of dns records from mail config route
This allows us to enable email server but not setup the dns records
yet. Useful for importing existing mailboxes from another server
without adjusting the DNS.
2018-07-25 10:29:28 -07:00
Girish Ramakrishnan 589602cdb0 Add note 2018-07-25 08:29:39 -07:00
Girish Ramakrishnan 91ecab08da Fix typo 2018-07-24 22:40:27 -07:00
Girish Ramakrishnan cae445556e Allow groups to be set during user add 2018-07-24 22:38:53 -07:00
Girish Ramakrishnan 8c2af87857 Fix coding style 2018-07-24 22:31:22 -07:00
Girish Ramakrishnan 2d44e356d3 Add user multi-select to group edit dialog 2018-07-24 22:25:44 -07:00
Girish Ramakrishnan 6be062f8fd Return empty object for angular 2018-07-24 22:19:34 -07:00
Girish Ramakrishnan dec1931f07 Make groups a multiselect
With many groups, it overflows and very cluttered
2018-07-24 21:36:52 -07:00
Girish Ramakrishnan 46473c3756 Show displayName in user listing 2018-07-24 15:20:25 -07:00
Girish Ramakrishnan cd893edfcf Add display name to user edit 2018-07-24 15:17:51 -07:00
Girish Ramakrishnan 84302c1739 Fix the text 2018-07-24 14:38:47 -07:00
Girish Ramakrishnan d6f6b4bfe5 Display hostname in mail status
Many are copy/pasting the domain directly into the DNS UI and it fails.
2018-07-24 14:34:26 -07:00
Girish Ramakrishnan 837ec4eb12 Send subdomain field in mail status 2018-07-24 14:25:21 -07:00
Girish Ramakrishnan 4a4166764a relay: Add a connect timeout 2018-07-23 17:05:15 -07:00
Girish Ramakrishnan 8c6531b6fb Add Mailjet 2018-07-23 16:47:24 -07:00
Girish Ramakrishnan f4993a7e58 Change redirection text 2018-07-16 18:39:22 -07:00
Girish Ramakrishnan 7654f36e23 Do temporary redirect instead
Permanent redirect can be cached forever in the browser which
means that changing redirect settings appear to not work.
2018-07-15 17:43:36 -07:00
Girish Ramakrishnan cc812c2177 Add user transfer event 2018-07-05 13:54:05 -07:00
Girish Ramakrishnan 6810c61e58 Add audit event for ownership transfer 2018-07-05 13:51:22 -07:00
Girish Ramakrishnan e11dc028d1 Transfer deleted user's resources 2018-07-05 13:44:00 -07:00
Johannes Zellner e314910a76 Ensure we uri encode the email query param for setup links 2018-07-04 11:10:13 +02:00
Johannes Zellner 75f9b19db2 Ensure we uri encode the email query arguments for invite, reset and setup links 2018-07-04 11:09:29 +02:00
Johannes Zellner 17410c9432 Remove notes about updates only on paid plan for the digest 2018-07-04 10:59:17 +02:00
Johannes Zellner ee9140c365 Use the correct object to reset alternateDomains 2018-07-03 18:04:25 +02:00
Johannes Zellner ce4ccc21dd Set better defaults and placeholder text for alternate domains 2018-07-03 18:04:03 +02:00
Johannes Zellner 6108fcf17b Put the alternate domain settings behind a checkbox 2018-07-03 18:00:22 +02:00
Johannes Zellner 8a1de81284 Cleanup sysadmin backup trigger test to only test for backup start event 2018-06-30 14:33:51 +02:00
Johannes Zellner 7b540a1d2d Fixup database tests 2018-06-30 14:12:35 +02:00
Johannes Zellner 8e8488a8e6 Lets be explicit about the error 2018-06-30 14:02:40 +02:00
Johannes Zellner b1b843fdd8 Fix dns tests 2018-06-30 13:59:23 +02:00
Johannes Zellner cd3fb77033 Add support for one alternate domain which redirects 2018-06-29 23:42:13 +02:00
Johannes Zellner 0697274311 Remove very odd unused line 2018-06-29 23:42:13 +02:00
Johannes Zellner c13c4d0b28 Ensure we purge all nginx configs of an app 2018-06-29 23:14:06 +02:00
Johannes Zellner 2371c8053f We have added a query for removing subdomains in the transaction 2018-06-29 23:14:06 +02:00
Johannes Zellner 7dc2f3cb5b Also wait for alternateDomains to be in sync 2018-06-29 23:14:06 +02:00
Johannes Zellner 163563f400 Remove now unused dnsRecordId 2018-06-29 23:14:06 +02:00
Johannes Zellner 868ed977b3 Cleanup alternateDomain dns records and nginx config 2018-06-29 23:14:06 +02:00
Johannes Zellner 262fe18fb2 Set dns record id for alternateDomains 2018-06-29 23:14:06 +02:00
Johannes Zellner 1eba79660e Move dnsRecordId to subdomains table 2018-06-29 23:14:06 +02:00
Johannes Zellner 3088ac098f Put redirect label into alternateDomain nginx configs 2018-06-29 23:14:06 +02:00
Johannes Zellner 45a41ea161 Fix typo 2018-06-29 23:14:06 +02:00
Johannes Zellner 6c17709d2a Fix fqdn building for alternateDomains 2018-06-29 23:14:06 +02:00
Johannes Zellner 2a52543087 The property is called subdomain not location 2018-06-29 23:14:06 +02:00
Johannes Zellner f4f6f4e7e0 Use business logic for getting all apps in taskmanager 2018-06-29 23:14:06 +02:00
Johannes Zellner f53c526677 Remove superflous . for user cert key file location 2018-06-29 23:14:06 +02:00
Johannes Zellner 1aa58a3905 ignore alternateDomains field for appdb updates 2018-06-29 23:14:06 +02:00
Johannes Zellner 2d58a6bdff Fix typo 2018-06-29 23:14:06 +02:00
Johannes Zellner 40c22a1ad7 send alternateDomains over the wire 2018-06-29 23:14:06 +02:00
Johannes Zellner 3d0da34960 Create nginx configs for app redirects 2018-06-29 23:14:06 +02:00
Johannes Zellner a6e53e3617 Ensure certificates for alternateDomains 2018-06-29 23:14:06 +02:00
Johannes Zellner 8efab41d37 Amend the alternateDomains property to app objects 2018-06-29 23:14:06 +02:00
Johannes Zellner 9af456cc7d Fix appdb.add as location and domain columns are gone 2018-06-29 23:14:06 +02:00
Johannes Zellner 9ba78b5b87 Setup alternate domains in apptask configure 2018-06-29 23:14:06 +02:00
Johannes Zellner b1b848de21 Support configuring alternateDomains for apps 2018-06-29 23:14:06 +02:00
Johannes Zellner 5497a7d4d8 Do not handle location and domain field for apps table updates 2018-06-29 23:14:06 +02:00
Johannes Zellner 18887b27e6 Fix migration script typo 2018-06-29 23:14:06 +02:00
Johannes Zellner fb42b54210 Remove apps.location and apps.domain
This is now managed in the subdomains table
2018-06-29 23:14:06 +02:00
Johannes Zellner 4d2ba2adaa Use subdomains table in appdb 2018-06-29 23:14:06 +02:00
Johannes Zellner c97e8d6bd4 add subdomains table with migration scripts 2018-06-29 23:14:06 +02:00
Girish Ramakrishnan b15029de11 Send tokenScopes as an array 2018-06-29 09:53:12 -07:00
Girish Ramakrishnan 11f5aaaf3b Pass on the tokenScopes 2018-06-29 09:09:25 -07:00
Girish Ramakrishnan 9aa74c99fc Make setup route return tokenScopes
This is used by the dashboard logic during initial activation
2018-06-29 08:27:34 -07:00
Girish Ramakrishnan 8f0b66bd98 Rework config routes
The config route now returns non-sensitive information under the
profile scope.

Caas config is a separate route

Update config is a separate route
2018-06-28 17:50:33 -07:00
Girish Ramakrishnan 35c9e99102 Move the update info into separate route (since it is sensitive) 2018-06-28 17:50:27 -07:00
Girish Ramakrishnan cab9bc3a61 Unify the config routes into /api/v1/config
No more separate config routes for different types of user
2018-06-28 17:40:57 -07:00
Girish Ramakrishnan 712c920b86 Move caas config to separate route 2018-06-28 17:28:46 -07:00
Girish Ramakrishnan 9978dff627 Add API to set and transfer ownership 2018-06-28 16:48:04 -07:00
Girish Ramakrishnan ff5bd42bef remove mostly dead comment 2018-06-28 14:19:56 -07:00
Girish Ramakrishnan dfa318e898 Add ownerId for apps
This tracks who installed the app.
2018-06-28 14:13:12 -07:00
Girish Ramakrishnan 38977858aa When issuing token intersect with the existing user roles
Also:
* Move token validation to accesscontrol.js
* Use clients.addTokenByUserId everywhere
2018-06-28 00:07:43 -07:00
Girish Ramakrishnan 3be660dcd9 If user has no appstore scope, we cannot get subscription info 2018-06-27 18:15:48 -07:00
Girish Ramakrishnan 6510240c0a Fix accesscontrol.intersectScopes 2018-06-27 18:08:38 -07:00
Girish Ramakrishnan d66dc11f01 Make canonicalScopeString return sorted array 2018-06-27 14:07:25 -07:00
Girish Ramakrishnan ce4424d115 debug out the scope 2018-06-27 13:54:10 -07:00
Girish Ramakrishnan a958c01974 digest: drop the Cloudron prefix in the subject 2018-06-27 11:00:41 -07:00
Girish Ramakrishnan 877f181f8d Put ts in app listing as well 2018-06-26 19:58:21 -07:00
Girish Ramakrishnan 3bb82d5e68 Use app ts to determine whether to refetch app 2018-06-26 19:54:18 -07:00
Girish Ramakrishnan 3f9f1480d3 The uninstall id gets cleared 2018-06-26 19:47:48 -07:00
Girish Ramakrishnan 948c446362 typo 2018-06-26 19:47:48 -07:00
Girish Ramakrishnan 02c0137dc1 Add a timestamp column to apps table
this field can be used in UI to see if more detailed app information
has to be fetched (since it calls the list apps REST API periodically)
2018-06-26 18:16:39 -07:00
Girish Ramakrishnan d0b34cc43e Fix schema 2018-06-26 18:05:34 -07:00
Girish Ramakrishnan 25f888e0d8 Get detailed app information if user can manage apps 2018-06-26 17:56:23 -07:00
Girish Ramakrishnan 93a2cab355 Ignore internal mailbox conflict errors 2018-06-26 17:44:14 -07:00
Girish Ramakrishnan 98661de24e Fix error message display in configure dialog 2018-06-26 17:35:48 -07:00
Girish Ramakrishnan a833ceb737 Insert the app sorted into the cache 2018-06-26 17:12:55 -07:00
Girish Ramakrishnan b41d0379f0 Only refresh the individual app that is being managed 2018-06-26 10:22:38 -07:00
Girish Ramakrishnan df6da7dd1c logs: installedApps is not used 2018-06-26 10:21:43 -07:00
Girish Ramakrishnan 24ca5bc990 Refactor logic into _updateAppCache 2018-06-26 10:21:36 -07:00
Girish Ramakrishnan e3e62b8407 refresh immediately 2018-06-26 10:19:50 -07:00
Girish Ramakrishnan 6907475f7a Add app management scope
This splits the apps API into those who have just 'read' access
and those who have 'manage' access.
2018-06-26 08:56:30 -07:00
Girish Ramakrishnan 0c98e6f4ca Mark it as internal function 2018-06-26 08:34:05 -07:00
Girish Ramakrishnan 6034121695 Make clone return data 2018-06-26 08:33:04 -07:00
Girish Ramakrishnan afe837e30a Remove used of Client.onApps 2018-06-25 20:15:24 -07:00
Girish Ramakrishnan f3cf640e21 terminal: use Client.getApp instead of refreshInstalledApps 2018-06-25 19:19:56 -07:00
Girish Ramakrishnan 8d98cefcca terminal: Remove unused dropdown logic 2018-06-25 19:10:26 -07:00
Girish Ramakrishnan bdf57a5c0a remove dead code 2018-06-25 19:10:00 -07:00
Girish Ramakrishnan 37f108d9f7 logs: remove dep on refreshInstalledApps 2018-06-25 18:58:11 -07:00
Girish Ramakrishnan 091663afe0 Add Client.getApp that uses REST API 2018-06-25 18:55:07 -07:00
Girish Ramakrishnan a77918bef9 Client.onReady has already loaded the app list 2018-06-25 18:27:40 -07:00
Girish Ramakrishnan f167714ea1 add note 2018-06-25 18:27:05 -07:00
Girish Ramakrishnan 9bf93b026b rename to removeInternalFields 2018-06-25 16:40:16 -07:00
Girish Ramakrishnan 1cab172169 Adapt UI logic to get user/group configuration for each user/group 2018-06-25 16:23:28 -07:00
Girish Ramakrishnan f932f8b3d3 Add user management scope
This splits the user and groups API into those who have just 'read' access
and those who have 'manage' access.
2018-06-25 16:10:00 -07:00
Girish Ramakrishnan 35c3df5a18 Adapt UI logic to get domain configuration for each domain 2018-06-25 15:33:21 -07:00
Girish Ramakrishnan 7ab5d5e50d Add domain management scope
This splits the domains API into those who have just 'read' access
(i.e without configuration details) and those who have 'manage' access.
2018-06-25 15:12:22 -07:00
Johannes Zellner 5028230354 Update cloudron-syslog
Fixes #564
2018-06-25 19:35:13 +02:00
Johannes Zellner af89e04c89 Update to fixed nsyslog-parser node module 2018-06-25 19:30:05 +02:00
Johannes Zellner 123a11ee9d add some test description 2018-06-25 00:37:47 +02:00
Johannes Zellner 3a22716df6 Add some initial test cases 2018-06-25 00:28:42 +02:00
Girish Ramakrishnan 80e9214f5b Reduce password length for sendmail/recvmail
Fixes #565
2018-06-22 16:37:34 -07:00
Girish Ramakrishnan 5ca64dd642 Normalize host path to prevent access to arbitrary paths 2018-06-22 08:29:08 -07:00
Girish Ramakrishnan 24d9d3063b Allow specifying bindMounts array to localstorage addon 2018-06-21 22:04:06 -07:00
Girish Ramakrishnan 74b1df17c0 Fix groups test and route to make name optional 2018-06-20 09:31:50 -07:00
Girish Ramakrishnan 7880a2f9c3 API returns 403 for incorrect password 2018-06-20 09:27:24 -07:00
Girish Ramakrishnan b9a6f46543 Check for 403 for incorrect password 2018-06-18 18:57:00 -07:00
Girish Ramakrishnan 8a84872704 Wrong password logs out the user 2018-06-18 18:52:35 -07:00
Girish Ramakrishnan 12b1909c7a Add roles UI creating and editing a group 2018-06-18 18:48:54 -07:00
Girish Ramakrishnan 5bd57b6dbd lint 2018-06-18 18:34:19 -07:00
Girish Ramakrishnan 5d13cc363f Allow group name to be changed 2018-06-18 18:30:40 -07:00
Girish Ramakrishnan 987a42b448 Fix syntax 2018-06-18 17:58:35 -07:00
Girish Ramakrishnan 3601e4f8a6 if -> while 2018-06-18 17:39:15 -07:00
Girish Ramakrishnan 60ed290179 validate role names against existing roles 2018-06-18 17:32:07 -07:00
Girish Ramakrishnan ff73bc121f Make tokenScope plural 2018-06-18 15:10:02 -07:00
Girish Ramakrishnan 961220be3f tokenScope -> tokenScopes 2018-06-18 15:09:16 -07:00
Girish Ramakrishnan 6cd0601629 Map group roles to scopes 2018-06-18 14:52:39 -07:00
Girish Ramakrishnan b5c8e7a52a Rename to getGroups 2018-06-18 14:10:29 -07:00
Girish Ramakrishnan 7f3114e67d Rename to get/setMembership (to indicate IDs and not group objects 2018-06-18 13:57:17 -07:00
Girish Ramakrishnan 1dbcf2a46a Rename to groups.update 2018-06-18 13:41:27 -07:00
Girish Ramakrishnan 898cbd01b3 tokens table always has canonical scope 2018-06-17 23:11:36 -07:00
Girish Ramakrishnan b6b7d08af3 Rename to accesscontrol.canonicalScopeString 2018-06-17 22:43:42 -07:00
Girish Ramakrishnan 6a2dacb08a Make intersectScopes take an array 2018-06-17 22:39:33 -07:00
Girish Ramakrishnan 1015b0ad9c validateScope -> validateScopeString 2018-06-17 22:29:17 -07:00
Girish Ramakrishnan 106e17f7ff caas: verify dns config
this is so that it fails if someone gives invalid token via API call
2018-06-17 22:22:05 -07:00
Girish Ramakrishnan 6ca28d9a58 validate dns config parameters 2018-06-17 22:21:51 -07:00
Girish Ramakrishnan ad6bc191f9 Make hasScopes take an array 2018-06-17 21:06:17 -07:00
Girish Ramakrishnan 4db703aeb1 Make the UI capability based 2018-06-17 18:24:45 -07:00
Girish Ramakrishnan 682f7a710c Add an appstore scope for subscription settings 2018-06-17 18:09:13 -07:00
Girish Ramakrishnan f24a099e79 Remove user.admin property
The UI will now base itself entirely off the scopes of the token
2018-06-17 16:49:56 -07:00
Girish Ramakrishnan 156ffb40c9 Remove scope from users.get 2018-06-17 16:07:20 -07:00
Girish Ramakrishnan cec1cc7086 scope -> tokenScope 2018-06-17 15:29:10 -07:00
Girish Ramakrishnan db8b6838bb Move skip password verification logic to accesscontrol.js 2018-06-17 15:20:27 -07:00
Girish Ramakrishnan c3631350cf We can skip user.scope here since we will intersect at access time anyway 2018-06-17 15:11:10 -07:00
Girish Ramakrishnan 669a1498aa Do not dump token in logs 2018-06-17 15:01:42 -07:00
Girish Ramakrishnan 12e55d1fab Use _.flatten instead 2018-06-16 13:03:52 -07:00
Girish Ramakrishnan 2bacbe6701 caas: disable enable email button instead of hiding it 2018-06-16 11:28:13 -07:00
Girish Ramakrishnan 3c65d88c65 caas: disable editing managed domain 2018-06-16 11:22:41 -07:00
Girish Ramakrishnan 726a1c37cc caas: show the backups view, just not the configure button 2018-06-16 11:14:45 -07:00
Girish Ramakrishnan ca9cd2cf0f Add groups.getRoles 2018-06-16 00:29:56 -07:00
Girish Ramakrishnan e8d9597345 Fix various error codes
401 - bad password/wrong password
403 - authenticated but not authorized
409 - conflict
2018-06-15 23:15:30 -07:00
Girish Ramakrishnan 63f2bbb253 wrong password is 401 2018-06-15 20:54:15 -07:00
Girish Ramakrishnan 24b0a96f07 Move passport logic to routes 2018-06-15 17:32:40 -07:00
Girish Ramakrishnan 7f11cc0daf add note 2018-06-15 17:16:50 -07:00
Girish Ramakrishnan 858ffcec72 Add note 2018-06-15 17:04:18 -07:00
Girish Ramakrishnan 05a8911cca condense the comments 2018-06-15 16:56:35 -07:00
Girish Ramakrishnan 89b41b11a4 Remove bogus accesscontrol logic 2018-06-15 16:26:14 -07:00
Girish Ramakrishnan 491d1c1273 getByResetToken already has the user object 2018-06-15 16:22:28 -07:00
Girish Ramakrishnan 0a0884bf93 lint 2018-06-15 16:10:06 -07:00
Girish Ramakrishnan a1ac7f2ef9 Remove support for authenticating non-oauth2 clients via BasicStrategy
This is not used anywhere
2018-06-15 15:38:58 -07:00
Girish Ramakrishnan 6aef9213aa Add notes on the various strategies 2018-06-15 15:38:53 -07:00
Girish Ramakrishnan 2e92172794 Do not dump the entire token 2018-06-15 14:56:52 -07:00
Girish Ramakrishnan c210359046 Create the backup logs dir 2018-06-15 14:56:32 -07:00
Girish Ramakrishnan 042ea081a0 Typo 2018-06-15 14:35:52 -07:00
Girish Ramakrishnan f32884b3b2 Add button for backup logs 2018-06-15 09:55:19 -07:00
Girish Ramakrishnan 1c32224a8a Move backup logs to make the REST API work 2018-06-15 09:47:34 -07:00
Johannes Zellner 97465c1bd8 Last one to open the terminal in a new tab from within the logs view 2018-06-15 17:03:00 +02:00
Johannes Zellner ce0a1ce38a Also open platform and email logs in a new tab instead of a window 2018-06-15 16:45:34 +02:00
Johannes Zellner f5060a0d4f Open logs and terminal in a new tab instead of a window 2018-06-15 16:42:04 +02:00
Johannes Zellner b3fa5afe3a First show apptask logs, then app logs 2018-06-15 14:58:07 +02:00
Johannes Zellner 843fec9dcb Fix wrong hasSubscription logic for digest email 2018-06-15 13:44:33 +02:00
Johannes Zellner bb34c8a242 Ignore button clicks when post install is not yet confirmed
Angular does not remove the click handler on ng-disabled :-/
2018-06-15 13:39:33 +02:00
Johannes Zellner 34fd733bb7 Fix mouse cursor state in app grid 2018-06-15 13:39:07 +02:00
Johannes Zellner 19b65460ff Do not show postinstall if the app is not ready yet 2018-06-15 13:35:46 +02:00
Johannes Zellner 35d9cc3c02 Update cloudron-syslog 2018-06-15 10:20:03 +02:00
Girish Ramakrishnan 02d5d2f808 Add API to add and update the group roles 2018-06-15 00:28:27 -07:00
Girish Ramakrishnan a77d45f5de Add rolesJson to groups table
This will contain the roles ('role definition') of a group of
users. We will internally map these to our API scopes.
2018-06-14 22:54:52 -07:00
Girish Ramakrishnan 5e09f3dcb2 Group names can contain - and end with .app
now that we have decoupled it from mailbox names, this restriction
can be removed
2018-06-14 22:22:09 -07:00
Girish Ramakrishnan eb566d28e7 Remove groupdb._addDefaultGroups
Putting this in db code causes issues when we merge in the
accesscontrol/roles variables (groupdb needs to source those
variables)
2018-06-14 21:56:34 -07:00
Girish Ramakrishnan 8795da5d20 Allow subscopes
We can now have scopes as apps:read, apps:write etc
2018-06-14 20:56:04 -07:00
Girish Ramakrishnan a9ec46c97e Add test for accesscontrol.validateScope 2018-06-14 20:51:22 -07:00
Girish Ramakrishnan dc86b0f319 validateRequestedScopes -> hasScopes 2018-06-14 20:31:48 -07:00
Girish Ramakrishnan f7089c52ff normalizeScope -> intersectScope 2018-06-14 20:23:56 -07:00
Girish Ramakrishnan 62793ca7b3 Add accesscontrol.canonicalScope tests 2018-06-14 20:17:59 -07:00
Girish Ramakrishnan edf277fcaf Feedback API has moved to cloudron scope 2018-06-14 20:04:38 -07:00
Girish Ramakrishnan 92e6909567 Move feedback route to cloudronScope 2018-06-14 20:03:51 -07:00
Girish Ramakrishnan 55e5c319fe Fix failing log test 2018-06-14 13:43:44 -07:00
Girish Ramakrishnan 9db334c2a4 Show backup notification in main.js instead 2018-06-14 12:59:25 -07:00
Johannes Zellner 1039d9c95e Remove postinstall message from the appstore view
This is now shown on first click
2018-06-14 16:07:29 +02:00
Johannes Zellner 37c8b2b57f Make the user confirm the post install message on first time clicking the app icon 2018-06-14 15:46:55 +02:00
Johannes Zellner 2da0ae6dc0 Bump version 2018-06-14 13:21:26 +02:00
Johannes Zellner bdb9ae36ce Ensure we add a newline to every log message 2018-06-14 13:19:44 +02:00
Johannes Zellner 1f8451fedb Do not print tail file headers in the logs 2018-06-14 12:53:49 +02:00
Johannes Zellner cdc78936b5 Ignore faulty empty log lines 2018-06-14 12:53:19 +02:00
Johannes Zellner 3357b14ef1 Remove potential line breaks from log lines 2018-06-14 12:10:33 +02:00
Girish Ramakrishnan 461fb0144e Fix wording 2018-06-13 12:25:29 -07:00
Girish Ramakrishnan eaf0b4e56e mail api: handle not found errors 2018-06-13 07:51:22 -07:00
Girish Ramakrishnan 7339c37b98 Fix invite link in userAdded notification 2018-06-12 20:08:59 -07:00
Girish Ramakrishnan 3176938ea0 Add 2.4.1 changes 2018-06-12 19:25:24 -07:00
Girish Ramakrishnan 60a9c60f40 Fix typo preventing email from getting enabled 2018-06-12 19:18:47 -07:00
Girish Ramakrishnan c3c77c5a97 Fix wording 2018-06-12 18:18:41 -07:00
Girish Ramakrishnan 869a6b5a51 Add email to setupLink 2018-06-12 17:59:04 -07:00
Girish Ramakrishnan 32e6b9024c Add email query param to reset code path
This reduces any attack surface
2018-06-12 17:56:41 -07:00
Girish Ramakrishnan 5a6ea33694 Display apptask logs 2018-06-12 14:55:58 -07:00
Girish Ramakrishnan 133e101f83 Fix download logs button 2018-06-12 14:50:18 -07:00
Girish Ramakrishnan 60bff95d9f Add journalctl fallback for box logs 2018-06-12 14:39:33 -07:00
Girish Ramakrishnan 6ecadb2308 Remove unused readFileLocally 2018-06-12 14:33:19 -07:00
Girish Ramakrishnan 0d3ff81d6c Fix UI jumpiness 2018-06-12 14:24:17 -07:00
Girish Ramakrishnan e938886629 Add box logs to support view 2018-06-12 14:05:58 -07:00
Girish Ramakrishnan 0cc2838b8b lint 2018-06-12 13:49:52 -07:00
Girish Ramakrishnan aa32055aa8 lint 2018-06-12 13:37:31 -07:00
Girish Ramakrishnan 59481c37bc Remove redundant user.admin check 2018-06-12 13:31:23 -07:00
Girish Ramakrishnan 0b868dad2d remove the thanks (it is a bug report) 2018-06-12 13:20:08 -07:00
Girish Ramakrishnan 3c063a2263 Remove one section since I want to add the logs section 2018-06-12 12:55:44 -07:00
Johannes Zellner f9750e237a We always allow app updates now 2018-06-12 17:46:07 +02:00
Johannes Zellner 908bb75fdc Only update the appstore profile if the root controller is still present 2018-06-12 17:31:52 +02:00
Girish Ramakrishnan 2c440d58c2 lockfile 2018-06-11 22:54:15 -07:00
Girish Ramakrishnan 0fc4f4bbff Explicitly pass port and logdir 2018-06-11 22:53:12 -07:00
Girish Ramakrishnan 043fc9d1af Parse args 2018-06-11 22:51:40 -07:00
Girish Ramakrishnan 0b82146b3e Install cloudron-syslog service file from box repo 2018-06-11 22:42:49 -07:00
Girish Ramakrishnan f36f221213 Bump version 2018-06-11 22:41:12 -07:00
Girish Ramakrishnan 5e8a6fdb11 Version 1.0.1 2018-06-11 22:15:02 -07:00
Girish Ramakrishnan 2845790459 Move systemd script and install to box repo 2018-06-11 22:14:11 -07:00
Girish Ramakrishnan 4369b3046e Make options non-optional 2018-06-11 15:14:59 -07:00
Girish Ramakrishnan a273827166 Make the name of the user non-optional 2018-06-11 14:22:02 -07:00
Girish Ramakrishnan ac75b60f47 Fix password validation text in setup and reset forms 2018-06-11 14:01:40 -07:00
Girish Ramakrishnan 0cb96f4b03 Change password requirements text 2018-06-11 13:54:17 -07:00
Girish Ramakrishnan d752ef5fad Move password generation logic to model code 2018-06-11 13:06:08 -07:00
Girish Ramakrishnan c099d5d3fa Make password strength be 8 chars
Fixes #434
2018-06-11 12:55:24 -07:00
Girish Ramakrishnan 6534297a5d Remove hat module
It's not been updated for 6 years!
2018-06-11 12:38:29 -07:00
Girish Ramakrishnan 2aa6350c94 Change the function names
We had these because user and mailbox code used to be mixed
2018-06-11 11:43:41 -07:00
Girish Ramakrishnan 8b4a399b8f More changes 2018-06-11 11:43:41 -07:00
Girish Ramakrishnan af7764253d Fix text 2018-06-11 11:29:31 -07:00
Girish Ramakrishnan af9652f7c8 Remove the email subscription requirement 2018-06-11 11:24:25 -07:00
Johannes Zellner e741ca9216 Support new platform log routes 2018-06-11 20:10:57 +02:00
Johannes Zellner 177243b7f2 Support new platform/addon log style 2018-06-11 20:09:45 +02:00
Girish Ramakrishnan c2ca827458 Add 2.4.0 changes 2018-06-11 10:13:48 -07:00
Girish Ramakrishnan 90d7dc893c Fix test 2018-06-11 10:01:54 -07:00
Girish Ramakrishnan eeaaa95ca3 Put email on free plan 2018-06-09 18:26:00 -07:00
Girish Ramakrishnan 04be582573 make the mailbox name follow the apps new location, if the user did not set it explicitly 2018-06-09 11:05:54 -07:00
Girish Ramakrishnan e3950c2fb0 Give user notification about how to resize 2018-06-08 12:22:45 -07:00
Girish Ramakrishnan 3eae49139c Create the terminal ws after fit()
part of cloudron/box#549
2018-06-08 12:04:12 -07:00
Girish Ramakrishnan 0953787559 Fix docker exec terminal resize issue
Fixes #549
2018-06-08 11:44:24 -07:00
Girish Ramakrishnan 97f17916f9 mail: hide the status tab entirely for caas 2018-06-08 09:54:58 -07:00
Girish Ramakrishnan 3bd8a58ea5 Update docker to 18.03.1 2018-06-08 09:13:46 -07:00
Johannes Zellner ee0a25962b Show only featured apps first on appstore listing 2018-06-08 09:48:34 +02:00
Girish Ramakrishnan 55fb3b3b55 Fix various text 2018-06-07 19:42:13 -07:00
Girish Ramakrishnan 275181824f Not sure why package lock keeps changing 2018-06-07 18:45:30 -07:00
Girish Ramakrishnan f814ffb14f Update node version 2018-06-07 18:43:52 -07:00
Girish Ramakrishnan 95ae948fce more package lock changes 2018-06-07 18:42:47 -07:00
Girish Ramakrishnan 9debf1f6c6 Update some packages 2018-06-07 18:36:36 -07:00
Girish Ramakrishnan 0e583b5afe Update node to 8.11.2 2018-06-07 17:06:47 -07:00
Johannes Zellner a58d9d1497 Have a better fallback for eventlog source 2018-06-07 23:04:26 +02:00
Johannes Zellner 801dbc9705 Only show terminal button in logs view for apps 2018-06-07 22:44:31 +02:00
Girish Ramakrishnan fa47031a63 cloudron-activate: Set externalDisk to true 2018-06-07 11:38:07 -07:00
Girish Ramakrishnan e3897c4c34 Make user confirm that they use an external disk 2018-06-07 11:36:55 -07:00
Girish Ramakrishnan 7fd1bb8597 backup: Add externalDisk option to fs backend
This merely confirms from the user understands that backups have to
stored on an external disk.
2018-06-07 11:14:13 -07:00
Girish Ramakrishnan 04dd8914cd Move logs button to separate section 2018-06-07 10:48:18 -07:00
Johannes Zellner 8c5b550caa Explicitly use cloudron-syslog 1.0.0 instead of moving master 2018-06-07 16:38:44 +02:00
Johannes Zellner c2651fd8f8 Remove backup related bits from the settings view 2018-06-07 16:30:40 +02:00
Johannes Zellner 3d57c32853 Explicitly send empty object for successful post to avoid angular warnings 2018-06-07 16:10:47 +02:00
Johannes Zellner 27f760fdbf Add separate backups page 2018-06-07 14:22:48 +02:00
Johannes Zellner a74cf0b064 add logs viewer for email server 2018-06-07 11:40:50 +02:00
Johannes Zellner 898d928dd6 logrotate files under platformdata must be owned by root 2018-06-06 18:45:54 +02:00
Johannes Zellner c578a048dd Ensure app logrotate file is owned by root 2018-06-06 18:39:52 +02:00
Johannes Zellner 2a475c1199 Add logrotate for app and addon logs 2018-06-06 17:36:48 +02:00
Johannes Zellner 5c911127e7 Ignore unknown log messages 2018-06-06 14:10:28 +02:00
Johannes Zellner 57e195883c Use plain syslog tags to be compatible with the format 2018-06-06 14:09:50 +02:00
Johannes Zellner f2178d9b81 Setup addons to log to cloudron-syslog 2018-06-06 14:09:50 +02:00
Johannes Zellner df1ac43f40 Use subshells correctly 2018-06-06 14:09:50 +02:00
Johannes Zellner 39059c627b Add --unsafe-perm for cloudron-syslog installation 2018-06-06 14:09:50 +02:00
Johannes Zellner d942c77ceb Bump infra version to reconfigure the container 2018-06-06 14:09:50 +02:00
Johannes Zellner c39240c518 Install cloudron-syslog 2018-06-06 14:09:50 +02:00
Johannes Zellner fd0e2782d8 Deliver the correct utc timestamp instead of the ISO string 2018-06-06 14:09:50 +02:00
Johannes Zellner 36aaa0406e Fix comment about firewall rule setup 2018-06-06 14:09:50 +02:00
Johannes Zellner 17ecb366af Bring back json log format for now 2018-06-06 14:09:50 +02:00
Johannes Zellner 1a83281e16 use port 2514 for syslog 2018-06-06 14:09:50 +02:00
Johannes Zellner ec41e0eef5 Use tail instead of journalctl to deliver logs 2018-06-06 14:09:50 +02:00
Johannes Zellner d4097ed4e0 Move logs into platformdata/logs 2018-06-06 14:09:50 +02:00
Johannes Zellner 8fa99fae1a Put all apptask logs of an app in the same log file 2018-06-06 14:09:50 +02:00
Johannes Zellner e9400e5dce support test usecase to not put logs in /var/log 2018-06-06 14:09:50 +02:00
Johannes Zellner 372a17dc37 Cleanup logs on app uninstall 2018-06-06 14:09:50 +02:00
Johannes Zellner 5ca60b2d3c Since we use log files now, lets keep the apptask timestamp for debug() 2018-06-06 14:09:50 +02:00
Johannes Zellner 1dc649b7a2 Put apptask logs alongside the app logs 2018-06-06 14:09:50 +02:00
Johannes Zellner 74437db740 Use syslog logging backend for apps and addons 2018-06-06 14:09:50 +02:00
Johannes Zellner 78910ba1cb Add description and repository info to avoid warnings 2018-06-06 11:56:08 +02:00
Johannes Zellner 9877b67cd4 Use postinstall hook 2018-06-06 11:49:51 +02:00
Johannes Zellner e55aa7b8fc Add .gitignore file 2018-06-06 11:27:58 +02:00
Johannes Zellner 473505d146 Attempt to install the systemd unit file 2018-06-06 11:27:36 +02:00
Johannes Zellner cbf7001a38 Use cloudron specific syslog port 2018-06-06 11:27:21 +02:00
Girish Ramakrishnan e09d2db7e6 Fix layout on larger screen 2018-06-05 22:46:06 -07:00
Girish Ramakrishnan 70128458b2 Fix crash when renewAll is called when cloudron is not setup yet 2018-06-05 21:27:32 -07:00
Girish Ramakrishnan 900225957e typo: code should return SetupError 2018-06-05 21:19:47 -07:00
Girish Ramakrishnan 28f183f450 Explicitly mark zone name as optional 2018-06-05 21:14:10 -07:00
Girish Ramakrishnan fd8f5e3c71 Return error for trailing dot instead 2018-06-05 21:09:07 -07:00
Girish Ramakrishnan 7382ea2b04 Handle my subdomain already existing 2018-06-05 20:53:28 -07:00
Girish Ramakrishnan 09163b8a2b strip any trailing dot in the domain and zoneName 2018-06-05 20:33:14 -07:00
Girish Ramakrishnan 953398c427 lint 2018-06-05 20:02:47 -07:00
Girish Ramakrishnan 9f7406c235 cloudron-activate: Add option to setup backup dir 2018-06-05 19:40:46 -07:00
Girish Ramakrishnan 2e427aa60e Add 2.3.2 changes 2018-06-05 09:51:56 -07:00
Girish Ramakrishnan 5126b605f2 Remove redundant "This domain must be hosted" text
If anything we can add them as <sup> info links
2018-06-04 21:47:23 -07:00
Girish Ramakrishnan aaebdda9d6 Remove bizzare color 2018-06-04 21:46:29 -07:00
Girish Ramakrishnan af29a3f498 Remove redundant "This domain must be hosted" text 2018-06-04 21:44:15 -07:00
Girish Ramakrishnan 55b6773d88 Add labels to setup page as well 2018-06-04 21:39:09 -07:00
Girish Ramakrishnan 239ec86c4a Fix setupdns layout 2018-06-04 20:59:23 -07:00
Girish Ramakrishnan 13adca00d6 do not center restore page labels 2018-06-04 20:46:40 -07:00
Girish Ramakrishnan a76631ee3d Add labels
Poeple seem to forget wat those fields are for mid-way through filling
the form. The place holder stuff is not overly obvious apparently.

This makes it consistent with all our other UI nevertheless
2018-06-04 20:30:22 -07:00
Girish Ramakrishnan 7ac99f16cd Fallback -> Self-signed 2018-06-04 16:52:17 -07:00
Girish Ramakrishnan ab80cc9ea1 Add username to the TOTP secret name
This works around issue in FreeOTP app which crashed when
the same name is used.

https://github.com/freeotp/freeotp-ios/issues/69
https://github.com/freeotp/freeotp-android/issues/69
2018-06-04 16:08:03 -07:00
Girish Ramakrishnan 3b6ca1c59d Fix spacing 2018-06-04 15:51:29 -07:00
Girish Ramakrishnan 321f11c644 mysql: _ prefix is hardcoded in mysql addon already
Fixes #560
2018-06-04 12:31:40 -07:00
Girish Ramakrishnan 3f55064c47 Fix name.com links 2018-06-04 10:13:47 -07:00
Johannes Zellner 38920c56d2 Add --version argument 2018-06-03 20:47:26 +02:00
Johannes Zellner 1f741702af Initial commit 2018-06-03 19:38:40 +02:00
Girish Ramakrishnan 47f85434db cloudron-activate: always login since activate return token and not accessToken 2018-06-01 00:12:19 -07:00
Girish Ramakrishnan 7717c7b1cd Add cloudron-activate script to automate activation from VM image 2018-05-31 23:46:44 -07:00
Johannes Zellner 7618aa786c Handle AppstoreError properly when no appstore account was set 2018-05-30 20:33:58 +02:00
Girish Ramakrishnan f752cb368c Remove spamcannibal
Fixes #559
2018-05-30 11:07:17 -07:00
Girish Ramakrishnan 917bc2a88c Reduce the padding (like in configure dialog) 2018-05-30 10:08:36 -07:00
Girish Ramakrishnan ca500e2165 mailer: do not send notifications to fallback email 2018-05-30 09:26:59 -07:00
Johannes Zellner 85dfa1ccad Always show the restore and clone tabs 2018-05-30 15:13:05 +02:00
Johannes Zellner 606828da1d Show backup create button next to the tabs 2018-05-30 15:07:16 +02:00
Johannes Zellner 371f81b980 Add test for mail enabling without a subscription 2018-05-30 00:02:18 +02:00
Johannes Zellner c68cca9a54 Fixup mail test, which requires a subscription 2018-05-29 23:59:53 +02:00
Johannes Zellner 9194be06c3 Fix app purchase test 2018-05-29 23:24:08 +02:00
Johannes Zellner a182d78566 Give busy feedback when the app clone is initiated 2018-05-29 22:53:51 +02:00
Johannes Zellner 0f294531d3 Do not show backup creation button if we still fetch backups 2018-05-29 22:48:42 +02:00
Johannes Zellner 9189532b83 Fix error reporting of restore form
angular does not attach form elements to the $scope when the DOM
elements are created dynamically!
2018-05-29 22:46:06 +02:00
Johannes Zellner c031253bd4 Use tabs instead of accordion for restore/clone ui 2018-05-29 22:05:18 +02:00
Johannes Zellner 11ae5d4832 Allow the user to setup a subscription when enabling email 2018-05-29 17:17:53 +02:00
Johannes Zellner 9eb58cdfe5 Check for plan when enabling email 2018-05-29 13:31:43 +02:00
Johannes Zellner 99be89012d No need to check for active subscription state, as the appstore already does this 2018-05-29 13:31:43 +02:00
Johannes Zellner 541fabcb2e Add convenience function to determine if subscription is 'free' or not 2018-05-29 13:31:43 +02:00
Johannes Zellner 915e04eb08 We do not have an 'undecided' plan state anymore 2018-05-29 13:31:43 +02:00
Johannes Zellner 3251dc3d73 Show hint to setup subscription if more than allowed apps are installed 2018-05-28 20:26:24 +02:00
Girish Ramakrishnan 48896d4e50 more changes 2018-05-28 10:06:46 -07:00
Girish Ramakrishnan a671e6acf7 Move the buttons to dialog footer 2018-05-28 10:05:57 -07:00
Girish Ramakrishnan 5ce658125c Make the text less verbose 2018-05-28 10:05:52 -07:00
Girish Ramakrishnan 1d88a935a5 Add clone UI
part of #248
2018-05-28 10:05:47 -07:00
Girish Ramakrishnan 8da07a16b9 dnsConfig is used incorrectly 2018-05-28 10:05:42 -07:00
Girish Ramakrishnan 7ce045ae51 Make it an accordion 2018-05-28 10:05:36 -07:00
Johannes Zellner 29682c0944 Only allow max of 2 apps on the free plan 2018-05-26 18:53:20 +02:00
Girish Ramakrishnan 346b1cb91c more changes 2018-05-26 08:11:19 -07:00
Girish Ramakrishnan a3e253436e Allow setting app visibility for non-SSO apps
Fixes #532
2018-05-25 13:59:53 -07:00
Girish Ramakrishnan e552821c01 Add 2.3.1 changes 2018-05-25 11:44:04 -07:00
Johannes Zellner 08955ce5a4 Do not show cryptic UTC timestamp format for backups 2018-05-25 13:56:15 +02:00
Johannes Zellner 57a4fa2d38 fix the restore dropdown and change some labels 2018-05-25 13:49:38 +02:00
Johannes Zellner 548e652ba2 Update the setup subscription dialog text 2018-05-25 13:39:04 +02:00
Girish Ramakrishnan e92cfae4d9 Fix error handling 2018-05-24 20:15:08 -07:00
Girish Ramakrishnan ed1320c937 Only send mailboxName if it changed 2018-05-24 16:29:36 -07:00
Girish Ramakrishnan bac3ba101e Add mailboxName to app configure route
Fixes #558
2018-05-24 16:26:34 -07:00
Girish Ramakrishnan abccffd05f Put domain in the mailbox name
part of cloudron/box#558
2018-05-24 16:05:27 -07:00
Girish Ramakrishnan c1106aa32e Save -> Configure 2018-05-24 15:54:50 -07:00
Girish Ramakrishnan 87c46fe3ea apps: return mailbox name as part of app
part of cloudron/box#558
2018-05-24 15:50:46 -07:00
Girish Ramakrishnan a94f5daac9 Allow mailbox name to be configured
part of cloudron/box#558
2018-05-24 15:42:40 -07:00
Girish Ramakrishnan 9d9f16e948 Re-work the configure dialog 2018-05-24 14:13:00 -07:00
Girish Ramakrishnan 0b5bd0b4cd Another take on this layout 2018-05-24 13:43:25 -07:00
Girish Ramakrishnan caa59dd9a9 Better layout 2018-05-24 09:55:33 -07:00
Girish Ramakrishnan 423958dd0e Add links to appstore 2018-05-24 09:45:08 -07:00
Girish Ramakrishnan f9763b1ad3 namecom: MX record not set properly 2018-05-24 09:41:52 -07:00
Girish Ramakrishnan 6a90cf5102 Fix incoming email section a bit 2018-05-24 09:26:41 -07:00
Johannes Zellner 2d820a3005 Remove label about free trial 2018-05-24 15:23:33 +02:00
Johannes Zellner 7fff55a1ed Style the tab widget to fit our style 2018-05-24 15:17:44 +02:00
Girish Ramakrishnan 52d1d47030 Add setting for mail from validation
Fixes #454
2018-05-23 23:34:11 -07:00
Girish Ramakrishnan 7df1d388f0 ManageSieve is now STARTTLS 2018-05-23 23:15:17 -07:00
Girish Ramakrishnan a34f5f13da Remove panel headers since they appear very heavy 2018-05-23 22:12:09 -07:00
Girish Ramakrishnan bcc1e5f79c Make the email UI tabbed 2018-05-23 22:00:48 -07:00
Girish Ramakrishnan 44d32ea281 add app backup button
Fixes cloudron/box#497
2018-05-23 21:17:12 -07:00
Girish Ramakrishnan f1e6116b83 Fix copyright years 2018-05-23 20:02:33 -07:00
Girish Ramakrishnan 273948c3c7 Fix tests 2018-05-22 13:22:48 -07:00
Girish Ramakrishnan 9c073e7bee Preserve addons credentials when restoring 2018-05-22 13:07:58 -07:00
Johannes Zellner 63e16c9bb8 Minor rewording to better fit the free tier 2018-05-22 19:17:14 +02:00
Girish Ramakrishnan 528be0e4c0 Remove redundant auto-update check button 2018-05-21 09:28:30 -07:00
Girish Ramakrishnan 0660a924b7 Add some spacing 2018-05-19 18:11:20 -07:00
Girish Ramakrishnan 6f29d5f3f6 explicitZone is gone 2018-05-19 17:28:43 -07:00
Girish Ramakrishnan 9903004af5 Remove trial expiry display 2018-05-18 22:30:39 -07:00
Girish Ramakrishnan 8b3edf6efc Bump mail container for managesieve fix 2018-05-18 18:26:19 -07:00
Girish Ramakrishnan 0c2b250901 Fix article 2018-05-18 12:08:19 -07:00
Girish Ramakrishnan 07e649a2d3 Add more changes 2018-05-17 20:17:24 -07:00
Girish Ramakrishnan 8c63b6716d Trigger a re-configure 2018-05-17 20:16:51 -07:00
Girish Ramakrishnan 6fd314fe82 Do not change password on app update
Fixes #554
2018-05-17 19:48:57 -07:00
Girish Ramakrishnan 0c7eaf09a9 bump container versions 2018-05-17 10:00:00 -07:00
Girish Ramakrishnan d0988e2d61 Generate password for mongodb on platform side
Part of #554
2018-05-17 10:00:00 -07:00
Girish Ramakrishnan 4bedbd7167 Generate password for postgresql on platform side
Part of #554
2018-05-17 10:00:00 -07:00
Girish Ramakrishnan 7ca7901a73 Generate password for mysql on platform side
Part of #554
2018-05-17 09:59:57 -07:00
Girish Ramakrishnan d28dfdbd03 Add 2.3.0 changes 2018-05-17 09:24:47 -07:00
Girish Ramakrishnan c85ca3c6e2 account setup simply redirects to main page now 2018-05-17 09:17:08 -07:00
Girish Ramakrishnan da934d26af call callback 2018-05-17 09:16:32 -07:00
Girish Ramakrishnan 00f8e96dd2 Remove spurious > 2018-05-17 09:06:27 -07:00
Girish Ramakrishnan f7cc49c5f4 move platform config to db
this way it can be tied up to some REST API later

part of #555
2018-05-16 17:34:56 -07:00
Girish Ramakrishnan 27e263e7fb lint 2018-05-16 14:08:54 -07:00
Girish Ramakrishnan 052050f48b Add a way to persist addon memory configuration
Fixes #555
2018-05-16 14:00:55 -07:00
Girish Ramakrishnan 81e29c7c2b Make the INFRA_VERSION_FILE more readable 2018-05-16 09:54:42 -07:00
Girish Ramakrishnan 267fa79164 Add advanced settings to setupdns 2018-05-15 16:24:09 -07:00
Girish Ramakrishnan 1528aa9d0c domain: add advanced view for zone name and cert provider 2018-05-15 15:39:43 -07:00
Girish Ramakrishnan c3fbead658 Allow zoneName to be changed in domain update route 2018-05-15 15:39:30 -07:00
Girish Ramakrishnan 36f5b6d678 manual dns: handle ENOTFOUND
Fixes #548
2018-05-15 15:39:18 -07:00
Girish Ramakrishnan 0cd6f7f2e7 Set text based on debugMode
Fixes cloudron/box#553
2018-05-15 12:13:31 -07:00
Johannes Zellner f05967d871 Fix terminal resize on window resize
This still does not update the terminal COLUMNS and ROWS
2018-05-15 18:31:54 +02:00
Girish Ramakrishnan a45b1449de Allow ghost users to skip 2fa 2018-05-14 15:07:01 -07:00
Girish Ramakrishnan a1020ec6b8 remove /user from profile route 2018-05-13 21:53:06 -07:00
Girish Ramakrishnan 26087e1580 remove user/ from profile route 2018-05-13 21:51:13 -07:00
Girish Ramakrishnan 9275c4fbfd Fix display of error message in mailbox add 2018-05-11 11:16:38 -07:00
Johannes Zellner a2e03ccf7a Fix the dns check notification link 2018-05-11 11:05:28 +02:00
Johannes Zellner 6605a38eab Add scheduler addon dropdown to webterminal 2018-05-11 10:40:11 +02:00
Johannes Zellner d384284ec8 Add name.com DNS provider in the CHANGES file 2018-05-11 10:03:58 +02:00
Girish Ramakrishnan bd29447a7f gcdns: Fix typo 2018-05-10 10:05:42 -07:00
Johannes Zellner aa5952fe0b Wait longer for dns in apptask
name.com often takes longer to sync all nameservers, which means we
timeout too early for them
2018-05-10 15:37:47 +02:00
Johannes Zellner 39dc5da05a We have to return a value on dns record upserting 2018-05-09 18:58:09 +02:00
Johannes Zellner 0a09d89684 Add name.com to setup dns 2018-05-09 18:44:03 +02:00
Johannes Zellner d0e07d995a Add name.com dns tests 2018-05-09 18:13:21 +02:00
Johannes Zellner 94408c1c3d Add name.com DNS provider 2018-05-09 18:13:14 +02:00
Johannes Zellner c0d4100dd1 Add name.com DNS provider 2018-05-09 12:24:46 +02:00
Girish Ramakrishnan 66f032a7ee route53: use credentials instead of dnsConfig 2018-05-07 23:41:03 -07:00
Girish Ramakrishnan 4356df3676 bump timeout 2018-05-07 16:28:11 -07:00
Girish Ramakrishnan 1e730d2fc0 route53: more test fixing 2018-05-07 16:20:03 -07:00
Girish Ramakrishnan e8875ccd2e godaddy: add tests 2018-05-07 16:09:00 -07:00
Girish Ramakrishnan 2b3656404b route53: fix tests 2018-05-07 15:53:08 -07:00
Girish Ramakrishnan 60b5e6f711 gandi: add tests 2018-05-07 15:51:51 -07:00
Girish Ramakrishnan 791f5af3e0 Fix scope use in logs.js and terminal.js 2018-05-07 14:48:52 -07:00
Girish Ramakrishnan b9166b382d route53: set listHostedZonesByName for new/updated domains 2018-05-07 13:42:10 -07:00
Girish Ramakrishnan ed57e701bc Revert "route53: set listHostedZonesByName property"
This reverts commit 07b428f051.

We can just do this in the backend entirely
2018-05-07 13:41:36 -07:00
Girish Ramakrishnan c678a9b6d7 lint 2018-05-07 13:18:51 -07:00
Girish Ramakrishnan d0c427b0df Add more 2.2 changes 2018-05-07 11:46:27 -07:00
Girish Ramakrishnan da5d0c61b4 godaddy: workaround issue where there is no del record API 2018-05-07 11:41:37 -07:00
Girish Ramakrishnan 07b428f051 route53: set listHostedZonesByName property 2018-05-07 11:27:24 -07:00
Girish Ramakrishnan 1f75c2cc48 route53: add backward compat for pre-2.2 IAM perms
backward compat for 2.2, where we only required access to "listHostedZones"
2018-05-07 11:24:34 -07:00
Girish Ramakrishnan d0197aab15 Revert "No need to iterate over the hosted zones anymore"
This reverts commit e4a70b95f5.

We will add backward compat route for pre-2.2 cloudrons
2018-05-07 11:23:28 -07:00
Johannes Zellner e4a70b95f5 No need to iterate over the hosted zones anymore 2018-05-07 16:35:32 +02:00
Johannes Zellner f4d3d79922 Query only requested Route53 zone
Fixes #550
2018-05-07 16:30:42 +02:00
Girish Ramakrishnan e3827ee25f Add more 2.2 changes 2018-05-06 23:52:02 -07:00
Girish Ramakrishnan a1ab8b6aa8 reset the expect dns records on refresh 2018-05-06 23:47:38 -07:00
Girish Ramakrishnan a07848164c Show dialog when disabling email 2018-05-06 23:41:39 -07:00
Girish Ramakrishnan 9981ff2495 Add GoDaddy Domain API 2018-05-06 23:07:52 -07:00
Girish Ramakrishnan 1b1d4ee431 Add GoDaddy 2018-05-06 22:36:33 -07:00
Girish Ramakrishnan 722b14b13d Add note on MX records 2018-05-06 22:14:39 -07:00
Girish Ramakrishnan f8e5668c5c typo 2018-05-06 21:51:58 -07:00
Girish Ramakrishnan eb2fb6491c gandi: more fixes 2018-05-06 21:16:47 -07:00
Girish Ramakrishnan a53afbce91 Add Gandi LiveDNS backend 2018-05-06 19:48:51 -07:00
Girish Ramakrishnan d8719626d9 Add UI for Gandi LiveDNS
Part of cloudron/box#235
2018-05-06 19:38:30 -07:00
Girish Ramakrishnan 3a06797de0 AppStore now returns 401 2018-05-06 19:38:30 -07:00
Girish Ramakrishnan 31af6c64d0 Expire existing webadmin token so that the UI gets a new token 2018-05-06 13:08:22 -07:00
Girish Ramakrishnan e8efc5a1b2 Fix test 2018-05-06 12:58:39 -07:00
Girish Ramakrishnan 0c07c6e4d0 Allow "-" in usernames
now that username and mailboxes are totally separate, we can allow '-'.
'+' is still reserved because LDAP it.

Fixes #509
2018-05-05 09:56:21 -07:00
Girish Ramakrishnan da5fd71aaa Bump mail container for CRAM-MD5 login fix 2018-05-04 21:57:26 -07:00
Girish Ramakrishnan d57d590363 2.2.0 changes 2018-05-04 10:30:24 -07:00
Johannes Zellner d6e49415d4 Only list user mailboxes in ldap search 2018-05-04 17:02:04 +02:00
Johannes Zellner cb73eb61d4 Allow binds against mailboxes 2018-05-04 17:02:04 +02:00
Johannes Zellner 4ce3a262a3 Allow search for mailboxes over ldap for a specific domain 2018-05-04 17:02:04 +02:00
Girish Ramakrishnan d18d1a977a Add duplicate profile route for compat with old apps using oauth addon 2018-05-03 09:29:46 -07:00
Girish Ramakrishnan 616e38189c Revert "x"
This reverts commit 182ea3dac3.
2018-05-03 09:29:23 -07:00
Johannes Zellner 726cafcee4 Rollback appdb record on clone and install if appstore purchase fails 2018-05-03 13:20:34 +02:00
Girish Ramakrishnan e5c43e9acd Remove debug 2018-05-02 12:41:22 -07:00
Girish Ramakrishnan f09e8664d1 Return canonical scope in REST responses
The '*' scope is purely an implementation detail. It cannot
be requested as such.
2018-05-02 12:36:41 -07:00
Girish Ramakrishnan b9d7149dbb Remove email domain logic from users view 2018-05-01 15:25:43 -07:00
Girish Ramakrishnan 182ea3dac3 x 2018-05-01 15:17:48 -07:00
Girish Ramakrishnan 97acd40829 remove obsolete roleSdk from the database
the file is renamed because cloudron.io was patched by mistake and we want to run this
migration there
2018-05-01 14:53:46 -07:00
Girish Ramakrishnan 72bbb4ec68 Use the scope to determine what the user has access to 2018-05-01 14:40:59 -07:00
Girish Ramakrishnan f1abb2149d gravatar url is already generated client side 2018-05-01 14:30:48 -07:00
Girish Ramakrishnan d9ec1be9b6 Get the user profile first to determine the scope 2018-05-01 14:19:05 -07:00
Girish Ramakrishnan ecddb6977a Use the version in the status API instead
This is because we want to get the user's profile as the first
thing to know the scopes
2018-05-01 14:15:12 -07:00
Girish Ramakrishnan 8c4015851a merge auth.js into accesscontrol.js 2018-05-01 14:03:10 -07:00
Girish Ramakrishnan a545bdd574 merge developer.js into clients.js 2018-05-01 14:02:59 -07:00
Girish Ramakrishnan d1135accbd lint 2018-05-01 13:58:13 -07:00
Girish Ramakrishnan d5b594fade return the scope as part of the user profile
send canonical scope in the profile response
2018-05-01 13:25:47 -07:00
Girish Ramakrishnan c5ffb65563 Fix usage of normalizeScope 2018-05-01 13:21:53 -07:00
Girish Ramakrishnan f76a5a7ba7 Move the clients API out of oauth prefix 2018-05-01 11:30:51 -07:00
Girish Ramakrishnan 77220038a1 clients API has moved up a level 2018-05-01 11:08:34 -07:00
Girish Ramakrishnan 17bcd95961 typo: return the scope as the scope 2018-05-01 10:59:46 -07:00
Girish Ramakrishnan 23bc0e8db7 Remove SDK Role
Just compare with the token's clientId instead
2018-04-30 23:03:30 -07:00
Girish Ramakrishnan 240ee5f563 Ensure we hand out max user.scope
The token.scope was valid at token creation time. The user's scope
could since have changed (maybe we got kicked out of a group).
2018-04-30 22:51:57 -07:00
Girish Ramakrishnan 200f43a58e lint 2018-04-30 22:41:23 -07:00
Girish Ramakrishnan 61d803f528 Use SCOPE_ANY everywhere 2018-04-30 21:44:24 -07:00
Girish Ramakrishnan e7c8791356 lint 2018-04-30 21:41:09 -07:00
Girish Ramakrishnan bc4f9cf596 Remove redundant requireAdmin
We already hand out scopes based on the user's access control
2018-04-30 21:38:48 -07:00
Girish Ramakrishnan 9789966017 Set the scope for a token basedon what the user has access to 2018-04-30 21:21:18 -07:00
Girish Ramakrishnan 1432d90f37 lint 2018-04-30 21:13:23 -07:00
Girish Ramakrishnan 68317a89cb remove the analytics hooks 2018-04-30 15:33:25 -07:00
Girish Ramakrishnan c84f984205 No need to create a token on password reset 2018-04-30 15:15:05 -07:00
Johannes Zellner 6e19153350 Remove now unused result argument 2018-04-30 20:37:12 +02:00
Johannes Zellner 4dc778f7c2 Change reset password button text 2018-04-30 20:17:56 +02:00
Johannes Zellner c5c3748aa9 Do not auto login on password reset 2018-04-30 19:55:59 +02:00
Girish Ramakrishnan f809e359c9 refactor the global variables as functions 2018-04-29 20:17:45 -07:00
Girish Ramakrishnan 91e846d976 Add SCOPE_DOMAINS 2018-04-29 18:11:33 -07:00
Girish Ramakrishnan 016f194271 typo 2018-04-29 18:02:48 -07:00
Girish Ramakrishnan b5f8ca6c16 Fix nasssty typo 2018-04-29 17:50:12 -07:00
Girish Ramakrishnan 922ab3bde1 lint 2018-04-29 17:50:12 -07:00
Girish Ramakrishnan 3b7bcc1f61 refactor scopes into accesscontrol.js
this will be our authorization layer for oauth and non-oauth tokens.
2018-04-29 17:50:07 -07:00
Girish Ramakrishnan 6e3b060615 Use SCOPE_PROFILE constant 2018-04-29 17:12:30 -07:00
Girish Ramakrishnan cc113d0bb5 Add SCOPE_CLIENTS for oauth clients API 2018-04-29 17:03:10 -07:00
Girish Ramakrishnan 3e22d513eb Add SCOPE_MAIL for mail APIs 2018-04-29 17:01:12 -07:00
Girish Ramakrishnan 9cf51ef680 Update cid-webadmin to have all the scopes possible 2018-04-29 16:57:49 -07:00
Girish Ramakrishnan 1c55a3e310 typo 2018-04-29 11:29:21 -07:00
Girish Ramakrishnan d8acf92929 UserError -> UsersError 2018-04-29 11:22:15 -07:00
Girish Ramakrishnan 7bb8d059b5 GroupError -> GroupsError 2018-04-29 11:21:01 -07:00
Girish Ramakrishnan 863afc68cb DomainError -> DomainsError 2018-04-29 11:20:12 -07:00
Girish Ramakrishnan 4fd58fb46b Rename user.js to users.js 2018-04-29 11:19:04 -07:00
Girish Ramakrishnan b1b664ceca Move removeInternalAppFields to model code 2018-04-29 10:47:34 -07:00
Girish Ramakrishnan e34fecee5e Pass scope and expiresAt as body params 2018-04-28 22:02:46 -07:00
Girish Ramakrishnan 1a27009fb5 Make expiresAt a body parameter 2018-04-28 22:02:07 -07:00
Girish Ramakrishnan 6c8c206e89 Move input validation logic to routes 2018-04-28 21:58:56 -07:00
Girish Ramakrishnan 82207c3ccd Keep naming consistent with delToken 2018-04-28 21:55:57 -07:00
Girish Ramakrishnan 6768994bbe Capitalize the 2fa text 2018-04-28 10:20:33 -07:00
Girish Ramakrishnan 7448dc5ec5 Capitalize 2018-04-28 10:19:21 -07:00
Girish Ramakrishnan b72efb1018 Remove private fields when listing domains
Currently, domains list route does not return the fallback cert.
make it future proof, just in case.
2018-04-27 11:41:30 -07:00
Johannes Zellner 7a8c525beb Add 2fa Oauth route tests 2018-04-27 14:08:22 +02:00
Johannes Zellner 9372d8797a Add 2fa tests for developer login api 2018-04-27 12:29:11 +02:00
Johannes Zellner faeb89b258 Add 2fa token login to oauth login form 2018-04-27 11:46:41 +02:00
Johannes Zellner 50d7ade0d9 Remove unused property on set 2fa secret 2018-04-27 08:20:12 +02:00
Johannes Zellner 497c76a905 Add 2fa token check to developer login 2018-04-27 08:18:13 +02:00
Johannes Zellner bbc434dc21 Attach the whole user object also for basic authed routes 2018-04-27 08:18:13 +02:00
Girish Ramakrishnan bfd25a08c2 Use new route to query user apps 2018-04-26 20:07:53 -07:00
Girish Ramakrishnan a7bb5d6b5c add route to query apps specific to user
it's not nice to overload a route to mean different things depending
on who queries it.
2018-04-26 20:07:12 -07:00
Girish Ramakrishnan 8861e61bdf profile routes have moved under /api/v1/user 2018-04-26 19:58:38 -07:00
Girish Ramakrishnan e0da6679e9 Move user routes to /api/v1/user 2018-04-26 19:57:44 -07:00
Girish Ramakrishnan 561d2d9f8b admin column is no more in users table 2018-04-26 19:55:26 -07:00
Girish Ramakrishnan 7549b3e837 enhance user creation API to take a password 2018-04-26 14:13:40 -07:00
Girish Ramakrishnan 049c2fca8a Make it a button 2018-04-26 09:58:45 -07:00
Girish Ramakrishnan 7756c07bc6 Add better text for the secret 2018-04-26 09:39:35 -07:00
Girish Ramakrishnan 63df9df913 Add links to TOTP apps 2018-04-26 09:32:56 -07:00
Johannes Zellner 05b6740e07 Refresh the user profile on 2fa status change 2018-04-26 16:54:03 +02:00
Johannes Zellner 46aac0288c Add 2fa disable flow 2018-04-26 16:38:26 +02:00
Johannes Zellner 4ec0fbd33c Show 2fa status in accounts view 2018-04-26 16:32:43 +02:00
Johannes Zellner 7a24d5fdfa Add 2fa enabling flow to accounts view 2018-04-26 16:30:07 +02:00
Johannes Zellner 0d58a6bf33 Send 2fa auth status with profile info 2018-04-26 16:29:40 +02:00
Johannes Zellner fbba636fb3 Handle more 2fa route errors 2018-04-26 16:14:37 +02:00
Johannes Zellner 9cd6333cf7 2fa routest work with the req.user object 2018-04-26 15:12:14 +02:00
Johannes Zellner 3f082ccace Fix typo 2018-04-26 14:49:14 +02:00
Johannes Zellner eb02c182e5 Avoid linter issue 2018-04-26 14:45:12 +02:00
Girish Ramakrishnan a37fc3093a Add note to setup subscription 2018-04-26 01:19:48 -07:00
Johannes Zellner 6574b22cf6 Add 2fa routest and business logic 2018-04-26 08:46:35 +02:00
Girish Ramakrishnan d1ed2aa2ce remove untested route set_admin 2018-04-25 21:43:21 -07:00
Girish Ramakrishnan c2a762cb29 Do not reserve mailbox names
Now that user management is split from mailboxes, we don't need to
reserve mailbox names anymore.
2018-04-25 21:14:33 -07:00
Girish Ramakrishnan 34d40edef4 Fix issue where docker needs more recent packages
The following packages have unmet dependencies:
 docker-ce : Depends: libseccomp2 (>= 2.3.0) but 2.2.3-3ubuntu3 is to be installed
E: Unable to correct problems, you have held broken packages.
2018-04-25 13:44:53 -07:00
Johannes Zellner 5ceb14cbca Add required 2fa node modules qrcode and speakeasy 2018-04-25 17:03:16 +02:00
Johannes Zellner 38668937ad Fixup database tests 2018-04-25 17:03:16 +02:00
Johannes Zellner 0167f83d4a Handle 2fa fields in userdb code 2018-04-25 17:03:16 +02:00
Johannes Zellner 9e66adb6d0 Add 2fa db record fields to users table 2018-04-25 17:03:16 +02:00
Johannes Zellner 4541940a76 Make the setup billing button more descriptive 2018-04-24 11:49:03 +02:00
Johannes Zellner 3017fe0c95 Remove (in trial) label 2018-04-24 11:47:47 +02:00
Johannes Zellner d3bf9a2478 Avoid further flickering of the subscription buttons 2018-04-24 11:47:00 +02:00
Johannes Zellner 7107672358 Fix trial badge flickering 2018-04-23 20:55:03 +02:00
Girish Ramakrishnan 0a537029bc add mailbox domain to the constraint 2018-04-23 10:14:16 -07:00
Girish Ramakrishnan c0716e86a7 Remove the "or Email"
The email here can be confused with the Cloudron email which it is not.
The preferred approach is to login via username anyway.
2018-04-22 18:29:10 -07:00
Johannes Zellner 8519d6665e Add support for appstore 2fa setup 2018-04-22 18:52:37 +02:00
Girish Ramakrishnan 774c9e435e Make it 1.5 since we have some swap to work with 2018-04-19 19:20:45 -07:00
Girish Ramakrishnan 50185adcf4 Add 2.1.1 changes 2018-04-18 12:49:11 -07:00
Girish Ramakrishnan e1f35a8d9f Fix wording 2018-04-18 12:40:30 -07:00
Johannes Zellner 67136e418c Encode the email query argument
This is required to correctly transfer characters like +
2018-04-18 21:29:40 +02:00
Johannes Zellner 924cc997aa Hide cloudron.io account section in settings if it is not yet registered 2018-04-18 21:18:31 +02:00
Johannes Zellner 12eda5f507 Improve subscription indicator
We now don't show anything when the cloudron is still in trial period
but the user already has setup billing
2018-04-18 17:56:04 +02:00
Girish Ramakrishnan 96bb979abf Add CRM category 2018-04-17 16:28:31 -07:00
Girish Ramakrishnan f74ad0323c Fix README title 2018-04-17 09:39:32 -07:00
Girish Ramakrishnan 62fd73f1b1 Fix link 2018-04-17 09:39:02 -07:00
Johannes Zellner 44f027eb04 remove unused require 2018-04-15 11:00:25 +02:00
Johannes Zellner c9cf6d610b Revision is not part of OAuth credentials 2018-04-15 11:00:01 +02:00
Johannes Zellner 16d4d28046 Be consistent and make domain list entries edit on click 2018-04-13 21:50:21 +02:00
Johannes Zellner 2280008029 Give a lot more backlog for the app logs 2018-04-13 13:13:51 +02:00
Johannes Zellner a36439314d Fix logviewer autoscroll for chrome
Chrome does not support the scrollTopMax property
2018-04-13 13:12:32 +02:00
Johannes Zellner 0c728c6af5 Fix mail rest api tests 2018-04-13 12:54:40 +02:00
Johannes Zellner 34d3d79b12 Improve error message when alias name is already taken 2018-04-13 12:37:27 +02:00
Johannes Zellner ff856a5978 Rename 'address' catchall property to 'addresses' to better indiciate this being an array 2018-04-13 12:15:15 +02:00
Johannes Zellner c4dad2f55f Fix address property error response in catchall 2018-04-13 12:15:15 +02:00
Girish Ramakrishnan 734286ba2e Add support for installing private docker images 2018-04-12 11:43:57 -07:00
Johannes Zellner 290b44fbb7 Fixup catchall to use mailboxes instead of users 2018-04-12 13:02:32 +02:00
Johannes Zellner 404c280595 Catchall property is now addresses 2018-04-12 12:37:32 +02:00
Johannes Zellner b0f8370a31 Make copies of mailbox properties to work with in edit dialog
This avoids local data model updates in the UI on dialog cancel
2018-04-12 12:26:54 +02:00
Johannes Zellner 6abcf4ec3c Remove left over artifacts from inline edit mode 2018-04-12 12:15:23 +02:00
Johannes Zellner db6d7bcefb Refresh the mailinglists on edit 2018-04-12 12:12:22 +02:00
Johannes Zellner 0e1913b0b4 Handle corner case, where mailbox referenced in mailinglist got removed 2018-04-12 12:12:11 +02:00
Johannes Zellner cc6b097dc5 Use a copy of the mailinglist properties on edit 2018-04-12 12:02:20 +02:00
Johannes Zellner c4f7a0c857 Ensure new mailboxes appear in maillinglist options 2018-04-12 11:57:15 +02:00
Johannes Zellner 34187d76b6 Update Chart.js to new version and show full fqdn for apps 2018-04-12 11:45:18 +02:00
Girish Ramakrishnan 87e7e9fa07 Add header to mailing list delete dialog 2018-04-11 19:04:26 -07:00
Girish Ramakrishnan 8643fbb65c Fix typo in mailbox delete dialog 2018-04-11 18:49:41 -07:00
Girish Ramakrishnan 0f7f8af4b2 Use docker 18.03.0-ce
17.12.0-ce has strange issues like https://github.com/moby/moby/issues/34097
2018-04-11 18:25:19 -07:00
Johannes Zellner 6a2846afeb Show full fqdn for apps in graphs 2018-04-11 19:19:05 +02:00
Johannes Zellner 60381d938e Fix search and replace mistake 2018-04-11 15:29:37 +02:00
Johannes Zellner ddaa52163b Update ssl ciphers according to mozillas recommendation 2018-04-11 15:15:29 +02:00
Johannes Zellner 799c1ba05d Improve on the csp header restriction 2018-04-11 13:00:08 +02:00
Johannes Zellner 838838b90d nginx would drop other headers if add_header is defined in the location section 2018-04-11 12:29:57 +02:00
Johannes Zellner 7bfa23e2b1 Prevent email hash change listener to kick-in on view change 2018-04-11 12:16:44 +02:00
Girish Ramakrishnan 4554d9f2f8 Add more changes 2018-04-10 15:13:04 -07:00
Girish Ramakrishnan bcd55972cd Remove many breaks
When email is disabled, there is just lots of empty space
2018-04-10 14:23:10 -07:00
Johannes Zellner d75e1d04b3 Do not use the same DOM element id twice 2018-04-10 18:05:35 +02:00
Johannes Zellner 02ef77398a Remove now unused apiOriginHostname variable from gulpfile 2018-04-10 18:00:18 +02:00
Johannes Zellner b0b19053a7 We now set the csp headers from nginx
This makes it easier to also support local development on non https
2018-04-10 17:59:46 +02:00
Johannes Zellner 573d0e993e Add CSP header for dashboard 2018-04-10 17:59:06 +02:00
Johannes Zellner 5cc298555a Ensure assets have proper tag attributes and always source from / 2018-04-10 14:49:49 +02:00
Johannes Zellner f2a0dcca31 Cleanup some linter errors and usused classes 2018-04-10 14:49:20 +02:00
Johannes Zellner c274e60868 Remove unused noapp.html 2018-04-10 14:31:37 +02:00
Johannes Zellner bde6ef8797 Make new mailbox/list buttons large but give some space on the bottom 2018-04-10 14:11:16 +02:00
Johannes Zellner 97313fe1c8 Remove other unused assets from the release tarball 2018-04-10 14:08:13 +02:00
Johannes Zellner 944f743438 Use the node modules defined in the dashboard repo 2018-04-10 13:51:01 +02:00
Johannes Zellner df15f63424 Remove unneccessary dashboard/ subfolder 2018-04-10 13:28:55 +02:00
Johannes Zellner 1bd4a0aa8e git ignore node_modules/ 2018-04-10 13:12:46 +02:00
Johannes Zellner f068ce4e85 Add package.json for gulp dependencies to build assets 2018-04-10 13:12:46 +02:00
Johannes Zellner 96a5b0e6ba Remove dashboard related node modules 2018-04-10 13:12:42 +02:00
Girish Ramakrishnan 95f7e50065 bump mail container 2018-04-10 00:00:27 -07:00
Girish Ramakrishnan 20093c581c Make the button small instead 2018-04-09 15:37:05 -07:00
Girish Ramakrishnan 814d7bafa8 Remove the content-large to keep all views same size 2018-04-09 14:55:35 -07:00
Girish Ramakrishnan d6a8837716 mail: verify with the owner id 2018-04-09 13:17:07 -07:00
Girish Ramakrishnan e07fac0335 Fix wording 2018-04-09 12:59:38 -07:00
Girish Ramakrishnan 39730c71ce Move buttons to top right 2018-04-09 12:29:00 -07:00
Johannes Zellner 8565130166 Allow deeplinking of domains into email view 2018-04-09 18:00:08 +02:00
Johannes Zellner 9acde7fe86 Add error feedback when mailbox name is already taken 2018-04-09 16:21:32 +02:00
Johannes Zellner 63e43e8d20 Move new mailinglist form to a dialog 2018-04-09 16:12:18 +02:00
Johannes Zellner 10a3af8e5e Ensure autofocus on dialog open 2018-04-09 15:58:25 +02:00
Johannes Zellner 14536febaf Move mailbox add form to dialog 2018-04-09 15:56:20 +02:00
Johannes Zellner 75b597418c Do not list app mailboxes 2018-04-09 15:45:54 +02:00
Johannes Zellner cc759e3550 set the mailbox record type for apps 2018-04-09 15:39:36 +02:00
Johannes Zellner 435730470b Fix indentation 2018-04-09 15:08:05 +02:00
Johannes Zellner 689ddf6875 edit mailinglists with a dialog instead of inline 2018-04-09 15:01:12 +02:00
Johannes Zellner fa550f57b3 Style the alias input and fix some typos 2018-04-09 12:54:25 +02:00
Johannes Zellner b9b84b661a Remove unused css classes and make all mailbox lines edit on click 2018-04-09 12:49:25 +02:00
Johannes Zellner b7573f449f Remove mailbox inline editing 2018-04-09 12:45:00 +02:00
Johannes Zellner 69f6895bd6 Move mailbox edit to dialog 2018-04-09 12:42:14 +02:00
Girish Ramakrishnan bf0dd935e5 mail: add type field 2018-04-07 21:29:44 -07:00
Girish Ramakrishnan 1d761deec0 Fix test 2018-04-07 18:39:17 -07:00
Girish Ramakrishnan b6335a327c Rename TYPE_* to OWNER_TYPE_* 2018-04-07 18:33:30 -07:00
Johannes Zellner 72a1e0d5ca No need to console.error() if we show the error in the ui already 2018-04-06 16:58:46 +02:00
Johannes Zellner 4eb80eedc0 Avoid reflow of the ui when buttons are shown/hidden 2018-04-06 16:58:27 +02:00
Johannes Zellner 32e6931b46 Remove console.log()s 2018-04-06 16:56:19 +02:00
Johannes Zellner 55d53ef311 Do not succeed if mailbox name is already taken 2018-04-06 16:55:01 +02:00
Johannes Zellner f60258ed71 Add mailbox add error handling 2018-04-06 16:51:57 +02:00
Johannes Zellner 32454ba64a Give the mailbox listing more space 2018-04-06 16:48:04 +02:00
Johannes Zellner de212f49c2 Fixup the mailinglist crud ui 2018-04-06 16:43:43 +02:00
Johannes Zellner 878940edae Fix sql syntax 2018-04-06 15:54:55 +02:00
Johannes Zellner 15648a3ab2 fix typo name -> username 2018-04-06 14:53:20 +02:00
Johannes Zellner 2fae98dd5b pass the dashboard version as a revision to the gulp file 2018-04-06 07:47:42 +02:00
Girish Ramakrishnan 9beeb33090 mail: validate list and mailbox names 2018-04-05 17:49:16 -07:00
Girish Ramakrishnan 605dc00422 mail: add members field for lists
we have to track the members of a list in the mail app separately
from groups. this is required because users can now have multiple
mailboxes. and because of that we cannot do a 1-1 mapping of group
members to mailboxes anymore. the ui is changed to select mailboxes
when creating a list.
2018-04-05 16:07:38 -07:00
Johannes Zellner c308bd90cb Ensure at least the index application assets are versioned for proper refresh 2018-04-06 00:11:08 +02:00
Girish Ramakrishnan 2c8fa01d6d mail: split the functions to add list and mailbox 2018-04-05 15:01:28 -07:00
Johannes Zellner 593bde9d92 Ensure the main controller is aware of the newly setup subscription 2018-04-05 23:27:39 +02:00
Johannes Zellner a16bd7030a Fix the configure/select plan button in the settings 2018-04-05 23:27:14 +02:00
Johannes Zellner 4d248bce39 Give appstore login form more space on the bottom 2018-04-05 22:03:40 +02:00
Johannes Zellner e236264848 Fetch subscription directly after the cloudron was registered to update the ui 2018-04-05 21:49:15 +02:00
Johannes Zellner 20e9877fe9 Give mail view more horizontal space 2018-04-05 21:24:29 +02:00
Johannes Zellner b0c4021d17 Add mailbox delete ui 2018-04-05 21:22:07 +02:00
Johannes Zellner 01bfd84853 Fixup the mailbox edit logic 2018-04-05 21:15:02 +02:00
Johannes Zellner a0dbcc9bb3 Add ui bits to add mailboxes 2018-04-05 21:00:33 +02:00
Johannes Zellner bbe351161f Adjust mailbox wrapper functions 2018-04-05 14:02:56 +02:00
Girish Ramakrishnan 467bfa2859 remove mailboxdb from groups code 2018-04-04 20:08:52 -07:00
Girish Ramakrishnan affb420181 cloudron-setup: highlight reboot in red 2018-04-04 09:55:22 -07:00
Girish Ramakrishnan e7b26e5655 Add note on accepting self-signed cert 2018-04-04 09:54:14 -07:00
Girish Ramakrishnan 5af657ee22 rename mail crud functions 2018-04-03 15:06:14 -07:00
Girish Ramakrishnan 7fac92c519 validate user id when adding mailbox 2018-04-03 14:27:09 -07:00
Girish Ramakrishnan f8a731f63a Add routes to change the mailbox and list owner 2018-04-03 14:12:43 -07:00
Girish Ramakrishnan a1f4a4d614 mail: make mailbox API based on mailbox name
this decouples mail API from users
2018-04-03 13:59:03 -07:00
Girish Ramakrishnan 696e864459 mail: make list API based on list name
this decouples mail API from groups
2018-04-03 12:06:22 -07:00
Girish Ramakrishnan 678ea50f87 validateAlias -> validateName 2018-04-03 09:47:15 -07:00
Girish Ramakrishnan 69d3b3cac8 2.0.2 -> 2.1.0 2018-04-02 13:37:06 -07:00
Girish Ramakrishnan 76915b99a8 Fix linter 2018-04-02 09:46:30 -07:00
Girish Ramakrishnan 255a5a12a5 Decouple mailbox deletion from user delete 2018-04-02 09:45:46 -07:00
Girish Ramakrishnan 968f515679 Enter works (no need for comma) 2018-04-02 09:27:17 -07:00
Girish Ramakrishnan cbb5cb3702 your -> this 2018-04-02 09:24:24 -07:00
Girish Ramakrishnan 82ed1881ea Remove the mailboxes text 2018-04-02 09:23:29 -07:00
Johannes Zellner 4d13d309d3 Handle reserved alias errors 2018-04-02 15:01:01 +02:00
Johannes Zellner 602291895c Mention which alias is reserved 2018-04-02 14:59:10 +02:00
Johannes Zellner 75eae0d8ec Make asyncForEach available globally to reduce code duplication 2018-04-02 11:35:02 +02:00
Johannes Zellner c329541708 Remove mailinglist handling in users/groups view 2018-04-01 23:10:47 +02:00
Johannes Zellner 10b8e93713 Add mailinglist ui in the mail view 2018-04-01 22:42:21 +02:00
Johannes Zellner 045ea4681a Do not return an error on mailinglist listing if none exists
We usually return the empty array, to avoid the need for specific error
handling
2018-04-01 21:51:56 +02:00
Johannes Zellner 963b1d60b5 Remove mailbox settings from user edit dialog 2018-04-01 20:53:49 +02:00
Johannes Zellner 158271de14 Add alias error reporting 2018-04-01 20:31:16 +02:00
Johannes Zellner e364661813 Send correct status code if mail alias already exists 2018-04-01 19:29:47 +02:00
Johannes Zellner baba63889d Add logic to set mailbox aliases 2018-04-01 19:12:06 +02:00
Johannes Zellner d52273a516 move mailbox and catchall sections above relay 2018-04-01 19:11:46 +02:00
Johannes Zellner df9a191434 Add rest api to list all aliases for a given domain 2018-04-01 18:23:54 +02:00
Johannes Zellner b4aac42032 Add more changes for 2.0.2 2018-04-01 15:15:52 +02:00
Johannes Zellner 2a8be279e7 The package lock now uses sha512 for checksum 2018-04-01 13:15:05 +02:00
Johannes Zellner 1b7556443f Add user table to manage mailboxes per domain
This does not yet handle the aliases
2018-03-30 18:34:00 +02:00
Johannes Zellner 9575a1158a Add user listing to mail view to manage per user mailboxes 2018-03-30 18:06:40 +02:00
Johannes Zellner 8ebcc2f8af Immediately check for new configuration after we check for updates 2018-03-30 15:29:45 +02:00
Johannes Zellner 8d6de76fa0 Show update button and dialog in settings view 2018-03-30 15:12:34 +02:00
Johannes Zellner 0ad813cc8d Move update button into notification instead of pill 2018-03-30 15:12:14 +02:00
Johannes Zellner 4af69fb8c8 Do not show a warning like log, but just dump the tag and detail 2018-03-29 17:36:00 +02:00
Girish Ramakrishnan cbc98a48ef Slight wording change 2018-03-28 10:17:17 -07:00
Girish Ramakrishnan 874541b988 Add issue templates 2018-03-28 10:14:35 -07:00
Johannes Zellner 63ae9a90cf ensure we call the callback 2018-03-28 14:32:21 +02:00
Johannes Zellner 551912145e Refetch the subscription also on the main controller 2018-03-28 14:19:34 +02:00
Johannes Zellner 611f54c237 LICENSE EXPIRED looks quite harsh 2018-03-28 14:18:58 +02:00
Johannes Zellner 60c9f49b44 Show distinct setup billing button in settings 2018-03-28 12:41:20 +02:00
Johannes Zellner 9f66003755 Show trial state in settings view next to plan name 2018-03-28 12:29:37 +02:00
Johannes Zellner 862e1d94be Remove dead notification code 2018-03-28 12:26:53 +02:00
Johannes Zellner 8196f76847 Show different subscription bubbles based on the billing and subscription status 2018-03-28 12:26:24 +02:00
Johannes Zellner 09f1bb4653 Add alias error reporting 2018-03-27 20:19:17 +02:00
Johannes Zellner f626a1f0b7 Fixup all other async occurances 2018-03-27 19:40:20 +02:00
Johannes Zellner fd609d3e19 Fix poor man's async to break on and report errors 2018-03-27 19:38:09 +02:00
Johannes Zellner 977e83cc22 Do not send empty aliases 2018-03-27 18:34:41 +02:00
Girish Ramakrishnan 0aa1b758ec Update docker to 17.12.0-ce 2018-03-26 16:34:33 -07:00
Johannes Zellner 59b3cabf7e parent.getSubscription() does not exist anymore 2018-03-26 15:22:39 +02:00
Johannes Zellner 4d85c36c16 Show app message if any on status label hover 2018-03-26 11:08:57 +02:00
Girish Ramakrishnan 2e0c632942 Do not crash if mail alias does not validate 2018-03-25 21:08:15 -07:00
Girish Ramakrishnan 82a593e82a Forward stats calls to mail container 2018-03-23 10:52:07 -07:00
Girish Ramakrishnan e33ebe7304 Revert "mysql: increase max_allowed_packet"
This reverts commit 9123ea7016.

Not needed. This was a db corruption issue
2018-03-22 21:49:08 -07:00
Girish Ramakrishnan d81930be72 add note on conn limit 2018-03-22 21:07:06 -07:00
Girish Ramakrishnan aac914182f remove options from database.initialize 2018-03-22 20:34:49 -07:00
Girish Ramakrishnan 26d4a11c44 cleanup eventlog more aggressively
Those login entries are really adding up on old cloudrons
2018-03-22 20:31:32 -07:00
Girish Ramakrishnan f498443cae remove unused exports 2018-03-22 20:29:26 -07:00
Girish Ramakrishnan d84d761bad Remove unused export 2018-03-22 19:40:38 -07:00
Girish Ramakrishnan 07601d1292 Fix schema 2018-03-22 18:41:10 -07:00
Girish Ramakrishnan 6cbe964301 Add note 2018-03-22 17:13:32 -07:00
Girish Ramakrishnan b762f80812 typo 2018-03-22 12:16:16 -07:00
Girish Ramakrishnan 84dcdbba33 Re-assign 2020 to mail server 2018-03-21 23:15:30 -07:00
Girish Ramakrishnan 9123ea7016 mysql: increase max_allowed_packet
some cloudrons are reporting some errors after 2.0. maybe all those
additional joins/fields we put in is causing this
2018-03-21 17:52:22 -07:00
Girish Ramakrishnan 2a18070016 do-spaces: Force retry of 4xx error codes when copying 2018-03-21 15:41:21 -07:00
Girish Ramakrishnan e0ece06b26 s3: improved copy logging 2018-03-21 14:22:41 -07:00
Girish Ramakrishnan 83d2eb31dd clarify debug 2018-03-21 11:39:16 -07:00
Girish Ramakrishnan c6b8ad88dd 2.0.2 changes 2018-03-20 20:04:35 -07:00
Girish Ramakrishnan 6adf88a6e5 Make uploads work with very slow upload speeds
chunk uploads get a timeout of 2mins (derived from http.timeout).
On servers like kimsufi, uploads takes forever (100 MB/sec limit).
Currently, our upload code does not dynamically adapt itself to
changing the concurrency when network is slow.
2018-03-20 19:37:45 -07:00
Girish Ramakrishnan 7699f6721d Add hack to figure out the position in the queue
this helps us track the progress a bit in the logs
2018-03-20 19:37:35 -07:00
Girish Ramakrishnan ce33681c37 Dump etag info 2018-03-20 18:19:14 -07:00
Girish Ramakrishnan 565eed015f Add better backup logs 2018-03-20 16:41:45 -07:00
Girish Ramakrishnan 4e0791eb22 Fix gulpfile to handle rename 2018-03-15 14:32:48 -07:00
Girish Ramakrishnan dd296544be Remove extra prefix 2018-03-15 14:30:10 -07:00
Girish Ramakrishnan 392e6d1c98 fix gitignore 2018-03-15 14:25:08 -07:00
Girish Ramakrishnan 5a49a555ad we use the package files from the box repo 2018-03-15 14:24:21 -07:00
Girish Ramakrishnan d59cb63188 move files to dashboard/ 2018-03-15 14:23:51 -07:00
Girish Ramakrishnan a07c4423c4 Rename webadmin to dashboard
The box nginx config has to be re-generated but this is always
done at box restart time
2018-03-15 14:14:23 -07:00
Johannes Zellner 1d0f87f408 Avoid reflow on settings page while fetching current subscription 2018-03-14 23:30:42 +01:00
Johannes Zellner a26264e8ce Remove usage of obsolete undecided subscription plan 2018-03-14 23:28:36 +01:00
Johannes Zellner ed716d7569 Sync the text what a subsription offers 2018-03-14 22:34:57 +01:00
Johannes Zellner f85fca1720 An update is actually a positive action 2018-03-14 20:38:17 +01:00
Johannes Zellner ed2539cbfc Change update dialog title and include version 2018-03-14 20:37:39 +01:00
Johannes Zellner 5405338d20 Remove redundant if condition 2018-03-14 20:10:48 +01:00
Johannes Zellner f8ad2fdc11 currentSubscription is not required anymore 2018-03-14 19:53:36 +01:00
Johannes Zellner a618f2b523 Make update button dependent on the sourceTarballUrl instead of the subscription type 2018-03-14 19:53:36 +01:00
Girish Ramakrishnan 65f07cb7c0 Add more changes 2018-03-14 09:15:58 -07:00
Girish Ramakrishnan 8d1a6cb06b Add more changes 2018-03-14 09:14:45 -07:00
Girish Ramakrishnan 8b5a88ba5e Remove break and just use some margin 2018-03-14 09:09:42 -07:00
Girish Ramakrishnan db9e3b44a1 Revert "Show all apps inactive and blurred in the background of the appstore login form"
This reverts commit b9d6c8f8bb.
2018-03-14 09:04:05 -07:00
Girish Ramakrishnan 634408d3a3 Fix the email instructions 2018-03-13 23:16:15 -07:00
Girish Ramakrishnan 529a668db3 Fix eventlog display 2018-03-13 22:03:25 -07:00
Girish Ramakrishnan c0f01da1cd Make it FREE TRIAL instead 2018-03-13 13:38:19 -07:00
Girish Ramakrishnan 4cbab59fdb Fix the setup billing link 2018-03-13 13:30:33 -07:00
Girish Ramakrishnan ec9c9fb0f5 Fix the subscription dialog text 2018-03-13 13:23:22 -07:00
Girish Ramakrishnan 286d634756 always require terms 2018-03-13 11:06:49 -07:00
Girish Ramakrishnan ca2457bfcb smallcase the Account 2018-03-13 11:00:41 -07:00
Girish Ramakrishnan 459cafdf56 Add description text during signup 2018-03-13 10:59:15 -07:00
Girish Ramakrishnan 873ea0fecd Restart mail server after DKIM keys are generated
Haraka won't do change notification on those
2018-03-13 09:53:41 -07:00
Johannes Zellner b9d6c8f8bb Show all apps inactive and blurred in the background of the appstore login form 2018-03-13 10:50:03 +01:00
Johannes Zellner 2da019556b Improve and center appstore login form 2018-03-13 10:21:25 +01:00
Johannes Zellner cbd28bc12f Attempt to better position checkboxes 2018-03-13 10:16:31 +01:00
Johannes Zellner 4332f60cc4 Use the admin domain as the default when installing a new app 2018-03-13 09:38:55 +01:00
Girish Ramakrishnan ace1f36f9c 2.0.1 changes 2018-03-13 00:36:58 -07:00
Girish Ramakrishnan 4cc9818139 remove error prone short-circuit update
when we do pre-releases, there really is no way for us to update
all the cloudrons. this worked when everything was managed cloudron.
2018-03-13 00:36:03 -07:00
Girish Ramakrishnan 950179ee1c Just link to docs instead 2018-03-13 00:29:10 -07:00
Girish Ramakrishnan 803eb4760e Make text clearer 2018-03-13 00:24:33 -07:00
Girish Ramakrishnan 390639bac0 Bump mail container
This fixes delivery of incoming mail from an outbound only domain
2018-03-13 00:20:48 -07:00
Girish Ramakrishnan 830c685ead recreate mail configs when mail domain is added 2018-03-12 21:14:45 -07:00
Girish Ramakrishnan 32a41e6c1c Clarify that users need a mailbox to access 2018-03-12 15:49:11 -07:00
Girish Ramakrishnan de195c461b make it text-info 2018-03-12 15:04:37 -07:00
Girish Ramakrishnan 5003a8ea4d Make it text-info for the underline to show 2018-03-12 14:17:58 -07:00
Girish Ramakrishnan caa41b0022 Fix the text to handle multi-domain email 2018-03-12 13:57:50 -07:00
Johannes Zellner c7151d2b8d Reduce newlines 2018-03-12 19:08:15 +01:00
Johannes Zellner 0929ae1a4c Remove unused app feedback dialog 2018-03-12 19:08:05 +01:00
Johannes Zellner 0c79c42c10 Use forum links for missing apps 2018-03-12 19:06:15 +01:00
Girish Ramakrishnan 65b174f950 Domain removal can fail because of mailbox as well 2018-03-12 09:54:16 -07:00
Girish Ramakrishnan 331ed4e6b9 Pass on any appstore purchase error 2018-03-11 12:43:24 -07:00
Girish Ramakrishnan 028b24db03 Don't make the whole dialog red 2018-03-09 15:02:30 -08:00
Girish Ramakrishnan afef548097 cloudron-setup: make sure --help runs as non-root 2018-03-09 10:37:18 -08:00
Johannes Zellner 60e924d5b8 We do require a domain entry in the mails table always 2018-03-09 14:26:33 +01:00
Johannes Zellner c0ea91a688 We have to parse the JSON data from the raw db results 2018-03-09 10:27:13 +01:00
Johannes Zellner bce3d3f664 Use fqdn instead of location for naked domain apps 2018-03-09 10:17:01 +01:00
Girish Ramakrishnan 828d6f6cc8 Show the provider and format for caas 2018-03-09 00:40:55 -08:00
Girish Ramakrishnan 0a026cc143 Display caas as Managed Cloudron 2018-03-09 00:37:20 -08:00
Girish Ramakrishnan 3bc9a87933 Fix display of caas domain 2018-03-09 00:29:00 -08:00
Girish Ramakrishnan ecf1f9255d relay: cloudron-smtp can always be set 2018-03-08 23:23:02 -08:00
Girish Ramakrishnan 1125643a80 Add Haraka 2.8.18 to changelog 2018-03-08 20:12:34 -08:00
Girish Ramakrishnan 61243f6a09 Wait for DNS records call to finish 2018-03-08 20:08:01 -08:00
Girish Ramakrishnan 2e156aa34a simplify the configureWebadmin logic 2018-03-08 18:26:44 -08:00
Girish Ramakrishnan 440629530f remove redundant check for "test" mode 2018-03-08 18:15:09 -08:00
Girish Ramakrishnan 769f9adc9d Update mail domain when domain is updated 2018-03-08 18:06:50 -08:00
Girish Ramakrishnan 3922824dc6 no reason to keep retrying 2018-03-08 18:00:16 -08:00
Girish Ramakrishnan 6bc5add023 Add a way to re-sync mail DNS records
Also, make restore resync the admin domain record which gets messed
up by the dns setup
2018-03-08 17:59:53 -08:00
Girish Ramakrishnan f284245e16 dkim keys are needed for the test 2018-03-08 16:10:33 -08:00
Girish Ramakrishnan ac62ee5a16 better debug 2018-03-08 15:29:18 -08:00
Girish Ramakrishnan 66f251be06 dnsSetup must fail if domain already exists 2018-03-08 15:10:38 -08:00
Girish Ramakrishnan ab932c4f5c Do not regenerate domain key if domain already exists 2018-03-08 15:01:08 -08:00
Johannes Zellner b5f53d921e Replace app-request link to point to the new forum 2018-03-08 21:46:16 +01:00
Girish Ramakrishnan 074c6fdba3 More renaming to forum 2018-03-08 10:50:18 -08:00
Girish Ramakrishnan b36f4becbc remove bad changelog 2018-03-08 10:22:46 -08:00
Girish Ramakrishnan ac69b96f92 clear timeout when getting mail status 2018-03-08 09:32:06 -08:00
Girish Ramakrishnan 6da7a7d2f4 clear the request timeout when adding/updating domain
DO API takes very long to respond at times :/ Currently, there is
no easy way to reset the timeout middleware timeout. We should add
this feature upstream (https://github.com/expressjs/timeout/issues/26)
2018-03-08 09:27:56 -08:00
Girish Ramakrishnan 22c54ced05 email: add MAIL_DOMAINS 2018-03-07 20:39:58 -08:00
Girish Ramakrishnan c7b1d49de6 cloudron-setup: add some color 2018-03-07 15:51:00 -08:00
Girish Ramakrishnan b7bf5b180c Display the format as well 2018-03-07 13:59:17 -08:00
Girish Ramakrishnan 12aba46893 use apps.getAll since app.fqdn is otherwise undefined 2018-03-07 13:39:40 -08:00
Johannes Zellner 9d4eee0dfe reword error message, all apps using a domain have to be deleted 2018-03-07 10:45:03 +01:00
Girish Ramakrishnan 105e9e7825 Use the new app update pattern 2018-03-06 21:30:42 -08:00
Girish Ramakrishnan d69c8f49e5 Migrate daily update pattern 2018-03-06 21:29:08 -08:00
Girish Ramakrishnan dd5f41aee8 Fix failing test 2018-03-06 01:35:38 -08:00
Girish Ramakrishnan 0b20b265de Do not crash if domain is not found 2018-03-06 01:30:40 -08:00
Girish Ramakrishnan ac94d0b5c7 Make apps also auto-update like before by default 2018-03-05 21:33:18 -08:00
Girish Ramakrishnan c5a70d10d7 Add robotsTxt to appdb.add 2018-03-05 16:14:23 -08:00
Girish Ramakrishnan b83eb993d8 Add sso and robotsTxt to app backup config.json 2018-03-05 15:03:03 -08:00
Girish Ramakrishnan 6cadaca307 clone: copy enableBackup and robotsTxt 2018-03-05 14:56:24 -08:00
Girish Ramakrishnan 36b91ae7db Add PSBL 2018-03-05 14:26:53 -08:00
Girish Ramakrishnan c8cf050156 Keep it alphabetical 2018-03-05 10:28:22 -08:00
Girish Ramakrishnan b7baafbbe6 actions -> events
also make it all past tense
2018-03-05 10:17:44 -08:00
Girish Ramakrishnan 85dde71ec3 fix display of undefined id
remove id display altogether, it's not very interesting to see it
2018-03-05 10:09:06 -08:00
Girish Ramakrishnan 2970b086a3 Updates -> App Updates 2018-03-05 09:39:03 -08:00
Johannes Zellner 3115432309 Fix missed eventlog.getAllPaged() usage 2018-03-05 17:53:18 +01:00
Johannes Zellner 8340f77e20 Fixup the database tests 2018-03-05 17:17:01 +01:00
Johannes Zellner 5910709008 Use the correct model attribute for appId in feedback form 2018-03-05 17:10:00 +01:00
Johannes Zellner 75932e2805 Collect app information for feedback email 2018-03-05 17:03:54 +01:00
Johannes Zellner 2b6ce4f813 Reduce feedback form options and add ability to specify failing app 2018-03-05 12:54:09 +01:00
Johannes Zellner 451c697fb7 Show email as fallback when a user has no username yet 2018-03-05 12:14:20 +01:00
Johannes Zellner 09149318b1 Better format the multiselect element 2018-03-05 12:10:17 +01:00
Johannes Zellner d2d8eb9485 Allow to select multiple actions in the eventlog filter 2018-03-05 12:03:02 +01:00
Johannes Zellner ff6d468604 Support multiple actions for eventlog api 2018-03-05 11:46:06 +01:00
Girish Ramakrishnan 161b2ac6f5 clone: Fix crash where port conflict is not handled 2018-03-02 19:37:15 -08:00
Johannes Zellner 9775ab5e8e make correct use of eventlog for developer/cli login 2018-03-02 19:26:55 +01:00
Johannes Zellner 91265613a9 Prettify eventlog source display 2018-03-02 19:21:24 +01:00
Johannes Zellner 726202b040 Amend app object where applicable to login event 2018-03-02 19:21:11 +01:00
Johannes Zellner 39d6ec96b7 amend full user object to login action 2018-03-02 19:21:11 +01:00
Johannes Zellner 31c414bbe1 Use more readable datetime tooltip format in activity log 2018-03-02 18:58:49 +01:00
Johannes Zellner e2a3654ed7 Give the time more space in the activity log 2018-03-02 18:50:49 +01:00
Johannes Zellner 96d7283534 Do not alternate the background color of the activity log 2018-03-02 18:50:32 +01:00
Girish Ramakrishnan 256a7e322b Keep it all to two words 2018-03-02 09:12:53 -08:00
Johannes Zellner e5b78337ac Show more readable user event data 2018-03-02 13:42:24 +01:00
Johannes Zellner 67ba5aa1c5 fix indentation 2018-03-02 13:19:57 +01:00
Johannes Zellner 87fedb71b7 Use shared function to remove private user fields for api 2018-03-02 11:24:27 +01:00
Johannes Zellner 8424e687cb Amend full user object to user action eventlog entries 2018-03-02 11:24:06 +01:00
Johannes Zellner c0d030c978 Amend full user object to user eventlog action entries 2018-03-02 11:02:32 +01:00
Johannes Zellner 53470e286f Use app model code to get all amended properties 2018-03-02 10:58:05 +01:00
Johannes Zellner 848a617f98 Make eventlog entries expandable to show raw event data 2018-03-02 10:50:05 +01:00
Johannes Zellner 1fc7efef0d Improve app related eventlog display 2018-03-02 10:49:46 +01:00
Girish Ramakrishnan 576f6eafbb Rename Chat to Forum 2018-03-01 13:40:10 -08:00
Girish Ramakrishnan e22c17eabe Fix issue where new package versions are getting skipped 2018-03-01 11:39:10 -08:00
Girish Ramakrishnan 2caf73b5e3 Do not list mail domains and aliases if username is not available 2018-02-28 15:21:42 -08:00
Girish Ramakrishnan 56abb68e0c Link admin link to docs 2018-02-28 13:40:06 -08:00
Girish Ramakrishnan 5ac1fccb98 mail: Fix crashes when user has no username yet 2018-02-28 13:31:28 -08:00
Girish Ramakrishnan 7aaac5a48a reword email address on domains 2018-02-28 13:26:15 -08:00
Girish Ramakrishnan 0cc58fafd6 Do not crash if user does not have username 2018-02-28 13:18:41 -08:00
Girish Ramakrishnan 98e19e6df5 fix upload errors causing double callback 2018-02-27 19:16:03 -08:00
Girish Ramakrishnan 441e514119 scheduler: give scheduler tasks twice the memory by default 2018-02-27 15:03:09 -08:00
Girish Ramakrishnan ff4b09a342 Use the container StartedAt instead of lastDate
CronJob.lastDate keeps resetting on every tick. Also, it doesn't
work across box code restarts.
2018-02-27 14:26:40 -08:00
Girish Ramakrishnan f8c8133148 scheduler: better debugs 2018-02-27 13:54:38 -08:00
Girish Ramakrishnan 938a41e12c scheduler: give cron jobs a grace period of 30 mins to complete 2018-02-27 13:28:42 -08:00
Girish Ramakrishnan 5d231f4fef scheduler: do no start all cronjobs at once 2018-02-27 12:44:11 -08:00
Girish Ramakrishnan a4e6181edf Fix tests 2018-02-27 11:59:15 -08:00
Girish Ramakrishnan 6685118b03 Use safe.JSON.parse instead
safe.require() caches the credentials which is annoying
2018-02-27 11:24:08 -08:00
Girish Ramakrishnan 8326587886 Give indication that the test is for the relay 2018-02-27 09:24:36 -08:00
Girish Ramakrishnan 4c9919a98b Drop the "your" 2018-02-27 09:22:43 -08:00
Girish Ramakrishnan 466b3f4784 Make the user edit dialog say "Primary email" 2018-02-24 16:42:15 -08:00
Girish Ramakrishnan 470c9971f8 mail exchange does not have trailing dot 2018-02-23 17:26:28 -08:00
Girish Ramakrishnan bccdf548a8 Fix typo making the MX records hidden 2018-02-23 17:04:38 -08:00
Girish Ramakrishnan fa4b1b3d5b Add note that user and group mailboxes must be enabled 2018-02-23 17:02:18 -08:00
Girish Ramakrishnan 9d47fd198f replace chat with forum 2018-02-23 15:53:23 -08:00
Girish Ramakrishnan 5966ee6800 replace terms link with license 2018-02-23 15:25:27 -08:00
Johannes Zellner 2d20e3c13d Scroll to top on category activation 2018-02-23 11:34:39 -08:00
Johannes Zellner 2172f8532d Rework the appstore category list 2018-02-23 11:34:27 -08:00
Johannes Zellner 9dc4318152 Reduce category item size 2018-02-23 11:34:04 -08:00
Johannes Zellner e1a92e7127 Make primary email labels explicit 2018-02-23 10:29:09 -08:00
Girish Ramakrishnan b6fb49956f s3: better debug output when copying 2018-02-22 12:41:18 -08:00
Girish Ramakrishnan 0bba985ff1 storage: Add implementation note 2018-02-22 12:30:55 -08:00
Girish Ramakrishnan 3c8c15db01 s3: use a constant backoff since it takes forever to fail otherwise 2018-02-22 12:30:44 -08:00
Girish Ramakrishnan c8a6294772 lint 2018-02-22 12:24:16 -08:00
Girish Ramakrishnan cea83889ec s3: Fix issue where it takes forever to timeout if the backend is down 2018-02-22 12:19:23 -08:00
Girish Ramakrishnan 2ecb66afd7 s3: cleanup code 2018-02-22 12:16:01 -08:00
Girish Ramakrishnan f5d426fd69 debug out the progress message 2018-02-22 11:11:36 -08:00
Girish Ramakrishnan e6c07fc148 merge the done callback into the main code 2018-02-22 11:06:28 -08:00
Girish Ramakrishnan 1f30a4f3ea Make s3.deleteObjects return error 2018-02-22 11:05:29 -08:00
Girish Ramakrishnan 0bfdaeb2fb rename to chunkSize 2018-02-22 11:01:04 -08:00
Girish Ramakrishnan e022dbf8a6 Revert "merge the done callback into the main code"
This reverts commit c39bec8cc1.

This was committed with extra stuff by mistake
2018-02-22 10:58:56 -08:00
Girish Ramakrishnan 0e7e672dd2 Update node modules 2018-02-22 10:52:42 -08:00
Girish Ramakrishnan 6075a7a890 typo 2018-02-22 10:34:48 -08:00
Girish Ramakrishnan 28b864c346 sos: Copy in 96M chunks as recommended by exoscale 2018-02-22 10:31:56 -08:00
Girish Ramakrishnan e9437131ff mail: set domain_selector to be mail_from 2018-02-21 20:46:32 -08:00
Girish Ramakrishnan c39bec8cc1 merge the done callback into the main code 2018-02-21 20:17:58 -08:00
Girish Ramakrishnan 767b31caa2 Display the pretty domain provider name in the table
This is especially needed to distinguish wildcard/manual.
2018-02-21 10:14:17 -08:00
Girish Ramakrishnan 727a25f491 DO Spaces: multipart copy now works 2018-02-20 14:48:03 -08:00
Johannes Zellner c2232936e0 Replace chat with forum in the support page 2018-02-20 11:55:57 -08:00
Johannes Zellner 4f1bbfd9e3 Make it clear that support ssh button should be enabled only if we ask the user to do so 2018-02-20 11:27:12 -08:00
Johannes Zellner 26bacfcbd6 Allow partial match of eventlog actions 2018-02-20 11:20:17 -08:00
Johannes Zellner caf57e37dc Add eventlog groups for apps and users 2018-02-20 11:13:51 -08:00
Johannes Zellner a777e7aeb3 add full app object to app related eventlog actions 2018-02-20 10:34:09 -08:00
Johannes Zellner 64b8e4ad6c Shorten app ids in eventlog 2018-02-19 01:56:12 -08:00
Johannes Zellner c9d3907124 Add missing whitespace 2018-02-19 01:56:12 -08:00
Johannes Zellner 676625a3f6 Add more appstore tests 2018-02-18 22:43:11 -08:00
Johannes Zellner f41603ea94 Add appstore.sendAliveStatus() tests 2018-02-18 21:42:37 -08:00
Johannes Zellner 18ae958e87 Send all domains with provider with the alive post 2018-02-18 21:36:21 -08:00
Johannes Zellner d68d4295de Remove unused require 2018-02-18 20:16:17 -08:00
Girish Ramakrishnan bf6bea800b Add note that user/group mailboxes must be enabled 2018-02-18 12:04:37 -08:00
Girish Ramakrishnan 0244529b45 Add more changelog 2018-02-18 02:45:46 -08:00
Girish Ramakrishnan 1d044a7392 Bump mail container for multi-domain support 2018-02-18 00:54:41 -08:00
Girish Ramakrishnan 06eab93f0e restart mail container when mail.ini changes 2018-02-18 00:54:11 -08:00
Johannes Zellner 26f1673d47 Show full fqdn on app grid item hover 2018-02-17 16:01:36 -08:00
Girish Ramakrishnan 84b7672509 caas can be a provider 2018-02-17 10:28:03 -08:00
Girish Ramakrishnan c9cd4ed363 Fix changelog version 2018-02-16 16:43:04 -08:00
Girish Ramakrishnan 05c98ccadb Enable auto-updates for major versions
Cloudron is always rolling releases and we never break compat
2018-02-16 16:01:10 -08:00
Johannes Zellner cb62cdcfa1 Report dependency error for clone if backup or domain was not found 2018-02-16 10:45:06 -08:00
Girish Ramakrishnan c0fddf5d8a Version 1.11.0 changes 2018-02-11 01:22:26 -08:00
Girish Ramakrishnan bcf3e71979 Add API to remove mailboxes by domain 2018-02-11 01:18:29 -08:00
Girish Ramakrishnan baf5cae58a Fix tests 2018-02-11 00:04:41 -08:00
Girish Ramakrishnan 5c1f9d5686 typo 2018-02-11 00:04:28 -08:00
Girish Ramakrishnan 4d89340c7d Handle FK error when deleting mail domain 2018-02-10 22:49:35 -08:00
Girish Ramakrishnan 0b6846787e The mailboxes domain column must reference the mail domain column 2018-02-10 21:31:50 -08:00
Girish Ramakrishnan 79976cd29d add an extra newline in config 2018-02-10 21:29:00 -08:00
Girish Ramakrishnan 574cf1057e mail: ensure mail is disabled when deleting mail domain 2018-02-10 10:38:45 -08:00
Johannes Zellner 1b3450e3a2 update the altDomain migration to also generate certs with SAN 2018-02-10 15:55:22 +01:00
Girish Ramakrishnan bec032702d Remove SAN check
-checkhost already checks the SAN. It is implementation dependent
as to whether the CN is checked for.
2018-02-09 14:20:03 -08:00
Girish Ramakrishnan fc79047bbf Generate fallback cert to contain naked domain in SAN 2018-02-09 13:44:29 -08:00
Girish Ramakrishnan 5263ea860d Add cert tests 2018-02-09 11:19:47 -08:00
Johannes Zellner 5140dee81d Generate a fallback cert for domains added during altDomain migration 2018-02-09 13:08:45 +01:00
Johannes Zellner 24d3195660 Add dns setup and activation route tests 2018-02-09 12:43:20 +01:00
Johannes Zellner 721a4c4349 Validate the adminFqdn in dns setup route 2018-02-09 12:43:03 +01:00
Johannes Zellner 08153454a2 Show tooltips immediately for app actions to guide the user 2018-02-09 10:11:23 +01:00
Girish Ramakrishnan efc26ab587 Specify which domain mail should be enabled for 2018-02-08 19:08:00 -08:00
Girish Ramakrishnan 83ff295f6d debug: authenticateMailbox 2018-02-08 18:49:27 -08:00
Girish Ramakrishnan 6decc790d6 Follow CNAME records
DNS records can now be a A record or a CNAME record. All we care
about is them resolving to the public IP of the server somehow.

The main reason for this change is that altDomain is migrated into
domains table and the DNS propagation checks have to work after that.
(previously, the 'altDomain' was a signal for a CNAME check which now
cannot be done post-migration).

In the future, we can make this more sophisticated to instead maybe
do a well-known URI query. That way it will work even if there is
some proxy like Cloudflare in the middle.

Fixes #503
2018-02-08 15:43:31 -08:00
Girish Ramakrishnan e24e0a7e87 br was removed by mistake in 23bc267c46 2018-02-08 15:25:37 -08:00
Girish Ramakrishnan 459cf8d0cd Add note on unbound at 127.0.0.1 2018-02-08 14:43:49 -08:00
Girish Ramakrishnan 58386b0c54 remove resolveNs 2018-02-08 14:39:35 -08:00
Girish Ramakrishnan 101c1bda25 translate cancelled errors to timeout errors 2018-02-08 14:27:02 -08:00
Girish Ramakrishnan d31c948d3e Remove type argument from waitForDns
The function is going to be changed to handle only A/CNAME records
2018-02-08 14:24:11 -08:00
Girish Ramakrishnan 0927c8161c Add note on return value of dns.resolve 2018-02-08 14:10:53 -08:00
Girish Ramakrishnan 4d92aea2f3 Fix usage of callback 2018-02-08 14:10:32 -08:00
Girish Ramakrishnan 0ca2451eaa fix tests 2018-02-08 12:09:06 -08:00
Girish Ramakrishnan 3b987f1970 DNS -> Dns 2018-02-08 12:05:29 -08:00
Girish Ramakrishnan a7b0ba2178 PTR must be resolved by the domain and not IP 2018-02-08 11:56:25 -08:00
Girish Ramakrishnan 744e6b8af0 replace the verizon smtp 2018-02-08 11:48:55 -08:00
Girish Ramakrishnan 8254e795be add missing export 2018-02-08 11:42:45 -08:00
Girish Ramakrishnan 26c95a25b6 Use the native dns resolver
it now supports cancel()

also, fixes #514
2018-02-08 11:37:58 -08:00
Girish Ramakrishnan 209f37312b createReleaseTarball must use the local branch for master branch 2018-02-08 08:58:20 -08:00
Johannes Zellner 23bc267c46 Show full fqdn in apps grid for now instead of the domain on the top 2018-02-08 16:17:47 +01:00
Johannes Zellner 5bd218b3b6 Fix intrinsicFqdn removal breakage 2018-02-08 15:23:38 +01:00
Johannes Zellner d57b772ada We can use js multiline strings 2018-02-08 15:19:00 +01:00
Johannes Zellner b6384d5025 Remove intrinsicFqdn 2018-02-08 15:07:49 +01:00
Johannes Zellner fa65576688 Remove unused require 2018-02-08 15:04:13 +01:00
Johannes Zellner 3572b4eb91 Do not crash if certs cannot be found. Error object does not exist 2018-02-08 10:27:30 +01:00
Johannes Zellner 35cc592d61 Remove altDomain ui bits 2018-02-08 09:44:35 +01:00
Johannes Zellner e710a210fd Fixup the unit tests 2018-02-08 09:00:31 +01:00
Johannes Zellner 265db7d0f7 Fix typo in appdb 2018-02-08 09:00:31 +01:00
Johannes Zellner b1939e73f4 Remove all occurances of altDomain in the code
Tests are pending
2018-02-08 09:00:31 +01:00
Johannes Zellner 28f5f62414 Add altDomain migration script 2018-02-08 09:00:31 +01:00
Girish Ramakrishnan ff577a8ed5 stop and disable postfix for good measure 2018-02-07 09:08:04 -08:00
Johannes Zellner 63d06d7024 Use fresh settings key for app autoupdate pattern 2018-02-07 16:51:53 +01:00
Johannes Zellner 4d4b77d6fb Add 1.10.2 changes 2018-02-07 16:27:54 +01:00
Johannes Zellner 3b4ff18881 Keep the invite email for users, which have not yet setup a username 2018-02-07 16:27:49 +01:00
Girish Ramakrishnan 512f6a1166 Remove obsolete action 2018-02-06 23:14:37 -08:00
Girish Ramakrishnan d65cb93158 Remove obsolete action 2018-02-06 23:14:02 -08:00
Girish Ramakrishnan e00f98884c setup SPF record of non-primary domain correctly 2018-02-06 23:11:47 -08:00
Girish Ramakrishnan 21016cc2e0 createReleaseTarball: Make sure we pick the current branch on webadmin 2018-02-06 16:20:29 -08:00
Girish Ramakrishnan d12803bb9d Add 1.10.1 changes 2018-02-06 16:11:06 -08:00
Girish Ramakrishnan 039a31318a Generate per-domain enable_outbound relay settings 2018-02-06 14:43:14 -08:00
Johannes Zellner 3160ffec3f The update schedule is only set for the apps now 2018-02-06 19:39:06 +01:00
Johannes Zellner c543d4517f Adjust to new autoupdate pattern rest apis 2018-02-06 19:25:06 +01:00
Johannes Zellner 3eb11ee20a Fixup updatechecker tests 2018-02-06 19:25:03 +01:00
Johannes Zellner 11d740682e Split box and app autoupdate pattern settings 2018-02-06 19:25:03 +01:00
Johannes Zellner 09b33e7ef9 Disable autoupdates by default 2018-02-06 19:25:03 +01:00
Johannes Zellner 19fafca9df Drop users email unique constraint for the migration timeframe 2018-02-06 12:14:11 +01:00
Girish Ramakrishnan da29c69be4 generate per-domain mail configuration 2018-02-05 15:13:35 -08:00
Johannes Zellner c4531e32d5 Fix all app route tests 2018-02-05 22:17:16 +01:00
Johannes Zellner 8f74cacfd0 Remove unused require 2018-02-05 20:45:53 +01:00
Girish Ramakrishnan 9ba830ab21 "installing" is easier to understand 2018-02-05 11:13:51 -08:00
Girish Ramakrishnan d7334b991b Add DO SGP1 2018-02-05 11:06:40 -08:00
Girish Ramakrishnan ad152bacdd Do not allow dns setup and restore to run in parallel
In the e2e, we did not check the webadminStatus after a dnsSetup
and immediately rushed into restore. This ended up mangling the
cert/key files of the admin domain.
2018-02-05 09:35:16 -08:00
Johannes Zellner 89673fa7f0 Make more of the app route tests work 2018-02-05 17:28:30 +01:00
Johannes Zellner c8613e646b Show more descriptive error message if minBoxVersion blocks update 2018-02-05 15:20:42 +01:00
Girish Ramakrishnan faef3114f5 Add more 1.10 changes 2018-02-04 09:33:44 -08:00
Girish Ramakrishnan 087f14643a catch_all_address in settings table is JSON 2018-02-04 01:27:40 -08:00
Girish Ramakrishnan 77fe595970 lint 2018-02-04 00:15:41 -08:00
Girish Ramakrishnan 14529d313a sos: CopySource requires fancier encoding rules 2018-02-04 00:12:28 -08:00
Girish Ramakrishnan 72f56ff91c rename the gcdns key file 2018-02-03 22:18:04 -08:00
Girish Ramakrishnan 2a7eabfa68 fix test mail route 2018-02-03 18:34:11 -08:00
Girish Ramakrishnan 2b355f6ee4 typo 2018-02-03 18:23:49 -08:00
Girish Ramakrishnan d18fe0a40c app: Check altDomain when saving certs 2018-02-03 01:03:23 -08:00
Girish Ramakrishnan 8f5105388f Fix crash when cert renewal fails 2018-02-02 21:21:51 -08:00
Girish Ramakrishnan 4c0da7a8c9 use fallback cert of altDomain 2018-02-02 20:29:04 -08:00
Girish Ramakrishnan f607010396 sos: remove exoscale specific hacks which are obsolete now 2018-02-02 20:13:51 -08:00
Girish Ramakrishnan 909db5b80e put the ui version in the string as well 2018-02-02 19:57:55 -08:00
Girish Ramakrishnan 7563dd4ac8 remove ununsed require 2018-02-02 18:49:55 -08:00
Girish Ramakrishnan cd6af57a6e Use SOS ng endpoint and v4
https://www.exoscale.ch/syslog/2018/01/09/object-storage/
2018-02-02 16:29:10 -08:00
Girish Ramakrishnan de1af3ac72 typo 2018-02-02 16:01:20 -08:00
Girish Ramakrishnan 2b9e90397d Do not delete the old conf dir (migration might use it) 2018-02-02 15:44:49 -08:00
Girish Ramakrishnan 8e258f11ec caas: import appstore and caas configs for existing caas 2018-02-02 13:29:57 -08:00
Girish Ramakrishnan 674028ee77 This probably explains why people ask for support in issue tracker 2018-02-02 11:39:36 -08:00
Johannes Zellner 2e818fd689 Make first half of the app route tests pass 2018-02-02 14:06:01 +01:00
Girish Ramakrishnan f85b7a4336 How many commits to fix a typo? 2018-02-01 22:24:41 -08:00
Girish Ramakrishnan f4a021b751 Fix path to nginx cert 2018-02-01 21:58:42 -08:00
Johannes Zellner 272b0489ff Fixup the app route test startup sequence 2018-02-01 18:04:43 +01:00
Johannes Zellner 1b25a0d7b7 Fix copy'n'paste error 2018-02-01 17:28:04 +01:00
Johannes Zellner d8b62f95be Fix domains tests 2018-02-01 11:19:42 +01:00
Johannes Zellner b337300a7b Do not use removed setTlsConfig in apptask tests 2018-02-01 11:16:55 +01:00
Girish Ramakrishnan 2083b035e8 create images in sfo2 now 2018-01-31 22:36:00 -08:00
Girish Ramakrishnan 2873793e7b typo 2018-01-31 22:31:19 -08:00
Girish Ramakrishnan 17128f0b56 Start the platform code only after 3 secs 2018-01-31 22:16:06 -08:00
Girish Ramakrishnan 1f5ecd5ff8 Set default for CAAS_CONFIG_KEY 2018-01-31 21:48:33 -08:00
Girish Ramakrishnan f51c2e7b61 pass env=dev as search param to set the tlsConfig 2018-01-31 21:02:12 -08:00
Girish Ramakrishnan 52e23c1299 createReleaseTarball: warn about uncommitted changes in webadmin 2018-01-31 20:48:12 -08:00
Girish Ramakrishnan 298a2d2f0f cloudron-setup: remove unused source-url 2018-01-31 20:14:31 -08:00
Girish Ramakrishnan 38b6e49d44 cloudron-setup: remove unused dns-provider 2018-01-31 20:11:13 -08:00
Girish Ramakrishnan d915ea348f cloudron-setup: tls-provider is obsolete 2018-01-31 20:10:47 -08:00
Girish Ramakrishnan 8014cc8ae1 le -> letsencrypt 2018-01-31 18:53:29 -08:00
Girish Ramakrishnan 7dc7c56e97 Fix tests 2018-01-31 18:23:49 -08:00
Girish Ramakrishnan a5af87e47a caas: never return key 2018-01-31 18:22:33 -08:00
Girish Ramakrishnan ab7448926f Fix use of fallback certs
We used to always use nginx cert dir. When custom fallback certs
were set, we used to copy it in boxdata cert dir and then nginx cert dir.

The issue is then that we have to copy all certs to nginx cert dir on
cloudron restore.

To fix this, we simply give priority to nginx cert dir and not copy
around certs anymore. caas cert will reside in nginx cert dir and
not get backed up, as expected.
2018-01-31 18:20:29 -08:00
Johannes Zellner a727fc5efa Use tlsConfig from domain, not settings in reverseproxy 2018-01-31 18:37:08 +01:00
Johannes Zellner 0b31568c14 Remove tlsConfig from the settings code 2018-01-31 18:27:31 +01:00
Johannes Zellner 9b21167a8d Use tlsConfig from the domain, not from settings 2018-01-31 18:27:18 +01:00
Johannes Zellner 3c198550be Do not send tlsConfig with alive status 2018-01-31 18:27:02 +01:00
Johannes Zellner 31be178210 Add tlsConfig provider validation 2018-01-31 18:20:11 +01:00
Johannes Zellner d1ef35ae1d Fixup all the tests to use domain tlsConfig 2018-01-31 18:09:38 +01:00
Johannes Zellner 1ec294a04b Add tlsConfig to domains and setup rest apis 2018-01-31 17:42:26 +01:00
Johannes Zellner 75775fa192 Add tlsConfig in domain model code 2018-01-31 16:57:59 +01:00
Johannes Zellner 5db1716664 Add tlsConfig handling in domaindb.js 2018-01-31 16:56:22 +01:00
Johannes Zellner 2db35e42de Add migration script for tlsConfig in domains 2018-01-31 16:53:00 +01:00
Johannes Zellner 5521e17313 Remove progress.json generation in start.sh 2018-01-31 11:56:51 +01:00
Johannes Zellner 35d2755cfb Remove splashpage logic 2018-01-31 09:24:43 +01:00
Johannes Zellner 182085d3f8 Remove the generation of the splash screen assets 2018-01-31 09:23:42 +01:00
Johannes Zellner 8ee1c87c45 Do not setup the splashscreen anymore 2018-01-31 09:11:04 +01:00
Johannes Zellner e1533ccd54 Prefix all installer log output for better tracking 2018-01-31 09:10:51 +01:00
Girish Ramakrishnan 7907dd5c4f migrate any existing host.cert/key to domain based host.cert/key
we don't remove the old one's yet since existing nginx config
might still be referencing them (not sure)
2018-01-30 22:09:55 -08:00
Girish Ramakrishnan be66d1ff4d arg_fqdn is no more 2018-01-30 21:27:27 -08:00
Girish Ramakrishnan 686a01b3e6 autoprovision: Save tlsKey/tlsCert with domain prefix 2018-01-30 20:41:52 -08:00
Girish Ramakrishnan 3299efc113 typos 2018-01-30 20:38:58 -08:00
Girish Ramakrishnan 7a15777ca5 1.9.4 changes 2018-01-30 19:54:04 -08:00
Girish Ramakrishnan a553a5de79 Copy over the correct license file 2018-01-30 19:52:03 -08:00
Girish Ramakrishnan 21f11c4136 cloudron-setup: remove many obsolete args 2018-01-30 19:51:58 -08:00
Girish Ramakrishnan cd31ed23bc rewrite renewAll to use existing functions 2018-01-30 16:34:26 -08:00
Girish Ramakrishnan 639a0eb43b Move the BOX_ENV check for more test coverage 2018-01-30 16:14:05 -08:00
Girish Ramakrishnan 86cf8bf9e7 Add auditSource to ensureCertificate 2018-01-30 15:16:34 -08:00
Girish Ramakrishnan 8e500e0243 caas: make the cert provider use domain fallback certs 2018-01-30 14:18:34 -08:00
Girish Ramakrishnan 781cc3b67a Merge ensureCertificate and configuring nginx 2018-01-30 13:54:13 -08:00
Girish Ramakrishnan f379724128 merge certificates.js and nginx.js to reverseproxy.js
when certs change, we have to call into nginx anyway. since they
go hand in hand, just merge those files. modern reverse proxies
do this job integrated already.
2018-01-30 12:26:09 -08:00
Girish Ramakrishnan 8e63d63509 Move configureDefaultServer to nginx.js 2018-01-30 12:01:53 -08:00
Girish Ramakrishnan c84f84b9fe host.cert and host.key are not used anymore 2018-01-30 11:58:26 -08:00
Girish Ramakrishnan fd913de913 Fallback certs are in host.cert/host.key 2018-01-30 11:43:51 -08:00
Girish Ramakrishnan 3336614702 Make getFallbackCertificate return path like getCertificate 2018-01-30 11:30:35 -08:00
Girish Ramakrishnan f2372c2c75 Fallback certs are named host.cert and host.key 2018-01-30 11:08:58 -08:00
Girish Ramakrishnan 4a4f1b883a Rename getAdminCerticate to getCertificate 2018-01-30 11:04:13 -08:00
Johannes Zellner b8e70f1160 Remove console.log() 2018-01-30 17:01:27 +01:00
Johannes Zellner 79f2709f3a Ensure certificates and nginx configs on startup 2018-01-30 16:55:13 +01:00
Johannes Zellner 8dea0f71f3 Fix typo with intrinsicFqdn 2018-01-30 16:46:51 +01:00
Johannes Zellner c624c04e9d Hide alias and mailling list UI when no domain has email enabled 2018-01-30 16:33:27 +01:00
Johannes Zellner 28cffbb168 fix config-test, fqdn is gone 2018-01-30 14:09:59 +01:00
Johannes Zellner 666badfa38 Mailinglist remove route returns 204 2018-01-30 13:38:25 +01:00
Johannes Zellner a662362df7 Add mailinglist rest api tests 2018-01-30 12:23:08 +01:00
Johannes Zellner f54197afe4 return 204 on mailinglist removal api 2018-01-30 12:22:55 +01:00
Johannes Zellner 2745511e67 Fix typo when using HttpSuccess instead of HttpError 2018-01-30 12:14:08 +01:00
Girish Ramakrishnan 21b9843083 Enable selector for now 2018-01-29 19:33:56 -08:00
Girish Ramakrishnan 2c60c4eb82 move all setup logic to setup.js 2018-01-29 15:51:36 -08:00
Girish Ramakrishnan c57c372adf remove config.fqdn() completely 2018-01-29 15:11:43 -08:00
Girish Ramakrishnan 1791617f33 typo 2018-01-29 15:11:43 -08:00
Girish Ramakrishnan e844e1400e zoneName is gone from config 2018-01-29 15:11:43 -08:00
Girish Ramakrishnan 1f2cfc45b5 adminFqdn is only valid if we have a admin domain set 2018-01-29 15:11:43 -08:00
Girish Ramakrishnan f3b53a22f5 Remove use of config.fqdn 2018-01-29 14:35:47 -08:00
Johannes Zellner 3c3d44e7f8 Add email alias route tests 2018-01-29 19:39:07 +01:00
Johannes Zellner 6470803604 Do not check if email is enabled when an app tries to do sendmail auth through ldap 2018-01-29 19:29:04 +01:00
Johannes Zellner edb02c859b Add mailbox rest api tests 2018-01-29 18:53:51 +01:00
Girish Ramakrishnan 351b5fcd70 Use config.adminDomain in tests 2018-01-29 09:28:26 -08:00
Girish Ramakrishnan 4c78a2933f config.setZoneName is gone 2018-01-29 09:06:01 -08:00
Johannes Zellner 9041da62e7 fix email route tests 2018-01-29 17:45:10 +01:00
Johannes Zellner 1e9b37053d Add email domain rest api CRUD testing 2018-01-29 17:18:01 +01:00
Johannes Zellner 6115b1cecf return 409 when an email domain conflict is found 2018-01-29 17:17:47 +01:00
Johannes Zellner ec7b550ca6 Fixup the ldap tests 2018-01-29 13:35:22 +01:00
Johannes Zellner 66ece2243b Actually return an error if we try to update a non existing email domain 2018-01-29 13:28:11 +01:00
Johannes Zellner 77961e51ec mail.get() returns a MailError 2018-01-29 13:14:08 +01:00
Johannes Zellner c95de547eb Fix config tests to match the removal of zoneName and repurpose of fqdn 2018-01-29 10:11:09 +01:00
Girish Ramakrishnan b2363271aa add config.adminDomain 2018-01-28 14:26:41 -08:00
Johannes Zellner 3b2f286ac5 certificates init/uninitialize are gone 2018-01-28 20:59:20 +01:00
Girish Ramakrishnan 9ff1b19c3f Remove unused config.zoneName 2018-01-27 09:26:17 -08:00
Girish Ramakrishnan 64f90abac7 Remove onDomainConfigured 2018-01-26 22:56:15 -08:00
Girish Ramakrishnan 7ce79505ee remove overcomplicated certificate events 2018-01-26 22:47:05 -08:00
Girish Ramakrishnan b4f945f977 do not regenerate fallback certificate 2018-01-26 22:47:05 -08:00
Girish Ramakrishnan c2d348fe72 remove unused /api/v1/settings/admin_certificate 2018-01-26 20:49:48 -08:00
Girish Ramakrishnan f850235b3a Remove ununsed setAdminCertificate 2018-01-26 20:46:58 -08:00
Girish Ramakrishnan 44324f4501 make certificates.validateCertificate return CertificatesError 2018-01-26 20:39:58 -08:00
Girish Ramakrishnan 6789e9cfe7 change order of validateCertificate args 2018-01-26 20:36:31 -08:00
Girish Ramakrishnan 4d72dfd3da remove ensureFallbackCertificate 2018-01-26 20:31:48 -08:00
Girish Ramakrishnan 66d90c36fc generate fallback cert for domains if not provided 2018-01-26 20:30:37 -08:00
Girish Ramakrishnan d0bf315859 certificates: cert/key cannot be null 2018-01-26 20:06:17 -08:00
Girish Ramakrishnan f49ff2985c certificates: setFallbackCertificate does not validate anymore 2018-01-26 20:03:24 -08:00
Girish Ramakrishnan ca839ea5cb remove dead comment 2018-01-26 19:55:01 -08:00
Girish Ramakrishnan ce2d39d54c cloudron-setup: add hetzner in the help text 2018-01-26 18:53:50 -08:00
Johannes Zellner 6ef57d3f23 Fix various route handling tests 2018-01-26 21:31:22 +01:00
Girish Ramakrishnan de8f7415c3 use config.adminFqdn instead of config.fqdn 2018-01-26 12:12:22 -08:00
Johannes Zellner 7441e11c2d Further test fixes to oauth, ldap and mail tests 2018-01-26 21:10:53 +01:00
Girish Ramakrishnan f555cfddd0 Uncomment for testing 2018-01-26 11:53:26 -08:00
Johannes Zellner c3211c7603 Add domain and enable mail on it for many tests 2018-01-26 20:36:27 +01:00
Johannes Zellner f028b4a232 Remove mailing list logic from groups tests 2018-01-26 20:07:23 +01:00
Johannes Zellner 004211a683 Remove mailbox and alias related tests in the user logic testing 2018-01-26 20:05:09 +01:00
Johannes Zellner 7d65f341db Ensure user tests have the domain setup correctly and remove implicit mailbox check 2018-01-26 18:47:51 +01:00
Johannes Zellner 7e378b426e Fixup the database tests 2018-01-26 18:32:13 +01:00
Johannes Zellner 3135c227d7 Do not add default domain records when we clear the db for testing 2018-01-26 18:32:01 +01:00
Johannes Zellner 3948cfc33b Parse sql error message to deliver correct conflict errors 2018-01-26 17:56:07 +01:00
Johannes Zellner 1c9052f085 Rework the email domain and alias handling for user edits to fix various bugs 2018-01-26 15:39:35 +01:00
Johannes Zellner 6a450b7190 setAlias returns 202 on success 2018-01-26 15:39:02 +01:00
Johannes Zellner 75194525fb Remove unused function showBubble() 2018-01-26 15:04:18 +01:00
Johannes Zellner ccdf926976 move mailbox cleanup code from userdb to user businesslogic 2018-01-26 12:26:03 +01:00
Johannes Zellner 40f73f6c4b Cleanup the mailboxes for groups on deletion 2018-01-26 11:40:28 +01:00
Johannes Zellner 50e0856803 Do not automatically create mailboxes for groups 2018-01-26 11:36:26 +01:00
Johannes Zellner 9d57c81505 Add group edit ui to select mailing lists 2018-01-26 11:31:43 +01:00
Johannes Zellner 8af587b6d9 Add mailing list api wrappers 2018-01-26 11:31:19 +01:00
Johannes Zellner d95a670dd7 Add mailing lists routes and logic 2018-01-26 11:25:45 +01:00
Girish Ramakrishnan 16b1b27bfb readDkimPublicKeySync has moved 2018-01-25 15:38:29 -08:00
Girish Ramakrishnan 15fbfd3042 create maildb entry in database._clear 2018-01-25 15:20:53 -08:00
Girish Ramakrishnan aabd1e7df6 Fix crash when adding a domain 2018-01-25 14:51:07 -08:00
Girish Ramakrishnan 9059a30b89 refactor dns logic in cloudron.js 2018-01-25 14:46:48 -08:00
Girish Ramakrishnan 669b94b0d1 test: remove used of config.fqdn 2018-01-25 14:11:52 -08:00
Girish Ramakrishnan 6cb9779537 mail: Add DNS records when mail domain is created 2018-01-25 14:11:46 -08:00
Girish Ramakrishnan c1cb2eda00 Add a hack for now to just add/remove mail domains as part of domains API 2018-01-25 13:40:45 -08:00
Girish Ramakrishnan caf8da331c Do not export configureWebadmin 2018-01-25 13:40:06 -08:00
Girish Ramakrishnan 67eb7a290f Fix mail domain route 2018-01-25 13:40:02 -08:00
Girish Ramakrishnan af6d8f41ee create dkim key when mail domain is added 2018-01-25 10:38:59 -08:00
Girish Ramakrishnan 90c867da82 Fix the text 2018-01-25 10:08:29 -08:00
Girish Ramakrishnan 7c361a87b0 validate appstore update responses 2018-01-25 09:39:34 -08:00
Johannes Zellner d97268dfa7 Give some busy indicator while email configs are fetching 2018-01-25 18:28:11 +01:00
Johannes Zellner c3ce6ef9f0 Add alias ui in user edit 2018-01-25 18:17:40 +01:00
Johannes Zellner eb3d6fe5f1 Use the new alias api in api wrapper 2018-01-25 18:16:47 +01:00
Johannes Zellner aab175ea05 Remove alias handling from user logic to mail logic 2018-01-25 18:03:26 +01:00
Johannes Zellner 647582a246 Add alias route handler and logic to mail.js 2018-01-25 18:03:02 +01:00
Johannes Zellner e39e7d4898 Adjust to the mailboxes route name change 2018-01-25 12:28:39 +01:00
Johannes Zellner 7bba63d911 rename mailbox routes to match overall scheme of plurals 2018-01-25 12:27:28 +01:00
Girish Ramakrishnan b71c0bde55 add routes to create and delete mail domain 2018-01-25 12:09:30 +01:00
Girish Ramakrishnan ef3ab44199 update cloudron-manifestformat (for prerelease in semver) 2018-01-24 20:09:14 -08:00
Girish Ramakrishnan ed3f128bcd Send relay, catchall and domain info from mail table 2018-01-24 15:38:45 -08:00
Girish Ramakrishnan 2f5ab98284 remove config.zoneName() use 2018-01-24 15:01:54 -08:00
Girish Ramakrishnan ee66893875 more config.fqdn() removal in tests 2018-01-24 14:58:37 -08:00
Girish Ramakrishnan 45456f2cf7 Remove unused maildb.addDefaultDomain 2018-01-24 14:42:45 -08:00
Girish Ramakrishnan df3c127584 fqdn -> domain 2018-01-24 14:28:35 -08:00
Girish Ramakrishnan 9d409a67fd Default to domain because tld.getDomain returns null for some tld's 2018-01-24 14:17:26 -08:00
Girish Ramakrishnan 2e05483d54 refactor: addDnsRecords now takes a domain 2018-01-24 14:08:25 -08:00
Girish Ramakrishnan 4e267c7cd1 mail: remove config.fqdn use 2018-01-24 12:28:47 -08:00
Girish Ramakrishnan efc6a5acd0 Return NOT_FOUND if app is missing in appstore 2018-01-24 10:56:26 -08:00
Johannes Zellner b282375ac7 Also allow to change the fallbackEmail for users 2018-01-24 16:21:14 +01:00
Johannes Zellner 8deb28f8eb Add multiselect to enable mailboxes per user and domain 2018-01-24 16:20:56 +01:00
Johannes Zellner e91833dcf2 Add mailbox api wrappers to client.js 2018-01-24 16:20:21 +01:00
Johannes Zellner 962ebc835d Do not error if mailbox state is already correct 2018-01-24 15:44:05 +01:00
Johannes Zellner c7282e861c Add missing MailError type 2018-01-24 15:38:19 +01:00
Johannes Zellner 358048e02b Add domain specific mailbox routes and logic 2018-01-24 13:11:35 +01:00
Johannes Zellner 666f42f4ef Do not automatically create mailboxes for users 2018-01-24 12:56:12 +01:00
Johannes Zellner aca07765c9 remove unused require 2018-01-24 12:55:44 +01:00
Johannes Zellner a3caad46a2 Add unique constraint to our schema description file 2018-01-24 10:51:46 +01:00
Girish Ramakrishnan ca9781c279 Fix display of domain 2018-01-23 20:43:49 -08:00
Girish Ramakrishnan 5e688944e8 dns: compute subdomain correctly when zone name and domain differs 2018-01-23 20:25:45 -08:00
Girish Ramakrishnan ed75364e2b Default to tld.getDomain if zone name is not provided 2018-01-23 18:54:05 -08:00
Girish Ramakrishnan 2d8412a629 Make API Key text clearer 2018-01-23 18:15:48 -08:00
Girish Ramakrishnan d33e35fda2 Move send_test_mail under mail domain api 2018-01-23 16:10:23 -08:00
Girish Ramakrishnan e4b253da22 test email now requires a domain 2018-01-23 16:10:09 -08:00
Girish Ramakrishnan ccaf687e91 remove config.fqdn from settings-test 2018-01-23 15:47:41 -08:00
Girish Ramakrishnan ab447120dc cloudflare: del returns 200 now 2018-01-23 14:52:41 -08:00
Girish Ramakrishnan 9e0e99cb0c Use new mail.ini parameters 2018-01-23 14:25:15 -08:00
Girish Ramakrishnan 6edad6b986 remove enterprise checks 2018-01-23 11:55:36 -08:00
Girish Ramakrishnan 992a32a8d9 add hetzner as supported provider 2018-01-23 11:37:15 -08:00
Johannes Zellner 7b7e94d3d6 Not sure what to do yet with alias ui in users settings, so disable to make the ui itself work 2018-01-23 17:09:47 +01:00
Johannes Zellner bc164281db Always show warning if an app requires email to be enabled for the selected domain
We can be smarter in the future and show this based on currently
selected domain from the dropdown
2018-01-23 16:51:53 +01:00
Johannes Zellner 4a7b26f940 mail_relay from settings table is also JSON 2018-01-23 16:29:15 +01:00
Johannes Zellner 147c728743 Rename maildb table to mail 2018-01-23 15:45:30 +01:00
Johannes Zellner f94380b2dd Disable multidomain for domains and email view 2018-01-23 15:37:55 +01:00
Johannes Zellner a2241a4e47 Fix return code for email toggle to let the UI correctly react 2018-01-23 15:35:02 +01:00
Johannes Zellner 7e5afcfe6a Reenable and provision the catchall dropdown 2018-01-23 15:11:33 +01:00
Johannes Zellner 7c926cc051 Already update the ui while checking the mail status 2018-01-23 12:41:52 +01:00
Johannes Zellner 16f43e3eac Fixup the status check logic 2018-01-23 12:38:19 +01:00
Johannes Zellner 456577a166 First round of mail view refactoring 2018-01-23 12:30:35 +01:00
Johannes Zellner 7166604fc0 Temporarily disable toplevel email check notification 2018-01-23 12:30:16 +01:00
Johannes Zellner 0ae8d1ed4d Refactor the mail related api wrappers 2018-01-23 12:29:57 +01:00
Johannes Zellner ec910e8ca1 Fix hotfix to be able to deal with different webadmin and box code revisions 2018-01-23 12:15:38 +01:00
Johannes Zellner 681813eddd Ensure the mail status check api has consitent toplevel properties 2018-01-23 12:01:00 +01:00
Girish Ramakrishnan 4388aee70d add dot files 2018-01-22 17:44:51 -08:00
Girish Ramakrishnan e6f4a9e4a8 Use domain in mail test 2018-01-22 14:49:30 -08:00
Girish Ramakrishnan 13e4ceff44 Initial commit 2018-01-22 13:01:38 -08:00
Johannes Zellner 27bd0be1fc Remove config.fqdn() from ldap tests 2018-01-22 20:35:21 +01:00
Johannes Zellner f152dbefad Also check if the domain has mail enabled for ldap sendmail auth 2018-01-22 20:35:08 +01:00
Johannes Zellner 687ba0e248 Verify mailbox against username instead of email 2018-01-22 20:06:18 +01:00
Girish Ramakrishnan 61b5d3e60d createReleaseTarball: Use HEAD instead of --revision 2018-01-22 11:02:21 -08:00
Girish Ramakrishnan b69d6c42e1 Get webadmin from a level below 2018-01-22 11:02:21 -08:00
Girish Ramakrishnan 924e35294f move ui to separate repo
This separates the platform code from the ui
2018-01-22 11:01:42 -08:00
Johannes Zellner a6f79854db Further ldap test fixes 2018-01-22 17:53:17 +01:00
Johannes Zellner 591f01bb45 Do not automatically generate the user's email for password verification 2018-01-22 16:12:13 +01:00
Johannes Zellner 8bcd807010 Use main email address for avatar 2018-01-22 16:09:25 +01:00
Johannes Zellner 14dcd71429 Add ui components for fallbackEmail property 2018-01-22 16:06:35 +01:00
Johannes Zellner 9f29438b34 Allow changing fallbackEmail via the profile api 2018-01-22 15:55:55 +01:00
Johannes Zellner cf94f26d62 Fixup the test using fallbackEmail 2018-01-22 11:52:58 +01:00
Girish Ramakrishnan 6fdb093595 add and remove maildb entries when domain is created and removed 2018-01-21 20:33:21 -08:00
Girish Ramakrishnan 93d5ce63ae fix indent 2018-01-21 15:34:35 -08:00
Johannes Zellner 32152a8b88 Add missing migration file 2018-01-21 14:50:55 +01:00
Johannes Zellner 48d557b242 Replace alternateEmail with fallbackEmail 2018-01-21 14:50:24 +01:00
Johannes Zellner 1e8aa209b1 Add fallbackEmail to user data model 2018-01-21 14:25:39 +01:00
Girish Ramakrishnan 00c1c42b58 Fix mail route tests 2018-01-21 00:59:20 -08:00
Girish Ramakrishnan f4e1b8874c add maildb entry when domain entry is created 2018-01-21 00:27:28 -08:00
Girish Ramakrishnan f5b685465f make ldap test use maildb 2018-01-21 00:27:13 -08:00
Girish Ramakrishnan f49a36f667 Use mail.get() 2018-01-21 00:17:25 -08:00
Girish Ramakrishnan 70fecb8a75 Add mail test 2018-01-21 00:06:08 -08:00
Girish Ramakrishnan 04868f0983 maildb tests 2018-01-20 23:52:16 -08:00
Girish Ramakrishnan 16ac205c7f make mail routes domain based 2018-01-20 23:47:12 -08:00
Girish Ramakrishnan 3ed794e486 Add a single getter for all mail settings 2018-01-20 23:47:12 -08:00
Girish Ramakrishnan f93963540e Add maildb
also, migrate values from settings table to maildb
2018-01-20 23:47:08 -08:00
Girish Ramakrishnan 777269810f Move mail container creation to mail.js
At this point, mail.js is like an app of it's own
2018-01-20 20:38:35 -08:00
Girish Ramakrishnan a7de17a160 Move mail related settings to new mail route
there is quite a bit of circular dep between settings, platform and
mail code. this will be removed in future commits.
2018-01-20 20:02:01 -08:00
Girish Ramakrishnan e724913b6c Move email_status into mail route 2018-01-20 18:37:15 -08:00
Girish Ramakrishnan b68db9bf05 email -> mail 2018-01-20 18:22:43 -08:00
Girish Ramakrishnan 8da04f6f51 make domaindb.update take object 2018-01-20 10:24:11 -08:00
Girish Ramakrishnan b64c41758e domaindb.upsert is not used 2018-01-20 10:18:06 -08:00
Girish Ramakrishnan 0eaea12818 make domaindb.add take an object 2018-01-20 10:17:01 -08:00
Girish Ramakrishnan b098db16cf domaindb: add DOMAINS_FIELDS 2018-01-20 10:05:31 -08:00
Girish Ramakrishnan dc952f1dd8 remove config.fqdn() from caas-test 2018-01-20 09:50:30 -08:00
Girish Ramakrishnan ee733d54ea Add mail_domains and mail_default_domain to mail.ini 2018-01-19 23:17:00 -08:00
Girish Ramakrishnan 0e4a0658b2 Remove postman location (unused by dovecot) 2018-01-19 22:10:10 -08:00
Girish Ramakrishnan 20166cd41c make catch_all fully qualified 2018-01-19 20:02:56 -08:00
Girish Ramakrishnan 98d493b2d0 ldap: make mailbox search return fully qualified names 2018-01-19 12:14:43 -08:00
Girish Ramakrishnan af25485fa0 ldap: Make alias return fully qualified alias 2018-01-19 12:11:33 -08:00
Girish Ramakrishnan 2015e7bce9 ldap: make mailing list search return fully qualified members 2018-01-19 12:11:26 -08:00
Johannes Zellner 2370b12795 Use the db also for crashnotifier to obtain a valid server domain for sending the mail 2018-01-19 19:26:45 +01:00
Johannes Zellner 18a781b956 Collect common mail sending configs in one function 2018-01-19 18:58:34 +01:00
Johannes Zellner 77206a9d3c Remove fqdn usage from all email templates 2018-01-19 18:56:52 +01:00
Girish Ramakrishnan 73800ac6a7 Linter fixes 2018-01-19 09:55:27 -08:00
Girish Ramakrishnan 27dfd1d6c1 Set the dkim selector when generating keys
The box code owns the dkim dir and selector can change per domain
2018-01-18 21:49:45 -08:00
Girish Ramakrishnan 0833f8830c retire script does not require fqdn 2018-01-18 19:44:43 -08:00
Girish Ramakrishnan 28a240a701 send adminFqdn instead of domain in alive route 2018-01-18 19:44:34 -08:00
Girish Ramakrishnan 5be827cd4e remove use of config.fqdn() in ldap test 2018-01-18 19:35:05 -08:00
Girish Ramakrishnan 0f47dcfae6 ldap: mailbox routes now require the cn to be fully qualified 2018-01-18 19:33:38 -08:00
Girish Ramakrishnan 614f13ffd0 move caas tests to separate file 2018-01-18 14:22:07 -08:00
Girish Ramakrishnan a850c0813b caas: use caas_config for token verification 2018-01-18 13:51:02 -08:00
Girish Ramakrishnan 4b642a407f remove caas dep from tests 2018-01-18 13:50:57 -08:00
Girish Ramakrishnan 6a87558b52 set default provider to generic 2018-01-18 13:41:40 -08:00
Girish Ramakrishnan 606efb8038 remove caas related logic from oauth test 2018-01-18 13:31:08 -08:00
Girish Ramakrishnan cfa523f3c1 Remove config.fqdn() fallback in apptask 2018-01-18 12:06:20 -08:00
Girish Ramakrishnan 0e7ebc9637 Move SMTPS port to 2465
This curious change is because gogs and gitea have no way to configure
the SMTPS port and rely on port number ending with 465 to determine
SMTPS (!)
2018-01-18 10:38:39 -08:00
Johannes Zellner 94f7b90705 Add 1.9.3 changes 2018-01-18 15:45:17 +01:00
Johannes Zellner 876b4feb49 The DNS provider property moved to the root dns config object 2018-01-18 12:15:44 +01:00
Girish Ramakrishnan 27252fb2cc 1.10.0 changes 2018-01-17 21:10:11 -08:00
Girish Ramakrishnan 6513aebba6 MAIL_IMAP_USERNAME and MAIL_SMTP_USERNAME should be fully qualified
Re-configure the whole infra to propagate the changes
2018-01-17 21:07:53 -08:00
Girish Ramakrishnan e9be2a7fb7 Remove is_custom_domain use (use adminFqdn instead) 2018-01-17 21:07:13 -08:00
Girish Ramakrishnan 28dac3fdb3 Fix indentation 2018-01-17 21:05:43 -08:00
Girish Ramakrishnan f4c3ae639e Use app.domain instead of config.fqdn when setting up mail addon 2018-01-17 21:05:22 -08:00
Girish Ramakrishnan 8c8e387012 bump addons 2018-01-17 20:25:57 -08:00
Girish Ramakrishnan 9e8be3fa50 do basic backupId validation 2018-01-17 16:22:50 -08:00
Girish Ramakrishnan 21058f8b61 exchangeBoxTokenWithUserToken is obsolete 2018-01-17 15:59:33 -08:00
Girish Ramakrishnan cef0cd4b25 config.token() and arg_token are not used anymore 2018-01-17 15:39:32 -08:00
Girish Ramakrishnan 9cd690e8b4 Do not cache box and user config
this is not needed anymore since webadmin does not keep polling this
2018-01-17 15:38:24 -08:00
Girish Ramakrishnan 116befd111 fix test 2018-01-17 15:13:53 -08:00
Girish Ramakrishnan fe0ff45c37 caas: autoprovision and use caas and appstore configs 2018-01-17 14:11:19 -08:00
Girish Ramakrishnan 337f919451 dnsConfig is unused 2018-01-17 12:25:33 -08:00
Girish Ramakrishnan 03d2e74e1d use constants 2018-01-17 12:25:14 -08:00
Girish Ramakrishnan 2c42653c24 1.9.2 changes 2018-01-17 10:53:00 -08:00
1378 changed files with 183099 additions and 77878 deletions
+25
View File
@@ -0,0 +1,25 @@
{
"env": {
"node": true,
"es6": true
},
"extends": "eslint:recommended",
"parserOptions": {
"ecmaVersion": 13
},
"rules": {
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"error",
"single"
],
"semi": [
"error",
"always"
],
"no-console": "off"
}
}
+2 -1
View File
@@ -1,6 +1,7 @@
# following files are skipped when exporting using git archive
test export-ignore
docs export-ignore
.jshintrc export-ignore
.gitlab export-ignore
.gitattributes export-ignore
.gitignore export-ignore
+1 -2
View File
@@ -1,10 +1,9 @@
node_modules/
coverage/
.nyc_output/
webadmin/dist/
setup/splash/website/
installer/src/certs/server.key
# vim swap files
*.swp
+6
View File
@@ -0,0 +1,6 @@
Please do not use this issue tracker for support requests and bug reports.
This issue tracker is used by the Cloudron development team to track actual
bugs in the code.
Please use the forum at https://forum.cloudron.io to report bugs. For
confidential issues, please email us at support@cloudron.io.
+7
View File
@@ -0,0 +1,7 @@
Please do not use this issue tracker for support requests and feature reports.
This issue tracker is used by the Cloudron development team to track issues in
the code.
Please use the forum at https://forum.cloudron.io to report bugs. For
confidential issues, please email us at support@cloudron.io.
+1 -4
View File
@@ -1,8 +1,5 @@
{
"node": true,
"browser": true,
"unused": true,
"globalstrict": true,
"predef": [ "angular", "$" ],
"esnext": true
"esversion": 11
}
+1581
View File
File diff suppressed because it is too large Load Diff
+34 -660
View File
@@ -1,661 +1,35 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
The Cloudron Subscription license
Copyright (c) 2022 Cloudron UG
With regard to the Cloudron Software:
This software and associated documentation files (the "Software") may only be
used in production, if you (and any entity that you represent) have agreed to,
and are in compliance with, the Cloudron Subscription Terms of Service, available
at https://cloudron.io/legal/terms.html (the “Subscription Terms”), or other
agreement governing the use of the Software, as agreed by you and Cloudron,
and otherwise have a valid Cloudron Subscription. Subject to the foregoing sentence,
you are free to modify this Software and publish patches to the Software. You agree
that Subscription and/or its licensors (as applicable) retain all right, title and
interest in and to all such modifications and/or patches, and all such modifications
and/or patches may only be used, copied, modified, displayed, distributed, or otherwise
exploited with a valid Cloudron subscription. Notwithstanding the foregoing, you may copy
and modify the Software for development and testing purposes, without requiring a
subscription. You agree that Cloudron and/or its licensors (as applicable) retain
all right, title and interest in and to all such modifications. You are not
granted any other rights beyond what is expressly stated herein. Subject to the
foregoing, it is forbidden to copy, merge, publish, distribute, sublicense,
and/or sell the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
For all third party components incorporated into the Cloudron Software, those
components are licensed under the original license provided by the owner of the
applicable component.
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing under
this license.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to the Corresponding Source
from a network server at no charge, through some standard or customary
means of facilitating copying of software. This Corresponding Source
shall include the Corresponding Source for any work covered by version 3
of the GNU General Public License that is incorporated pursuant to the
following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU Affero General Public License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
box
Copyright (C) 2016,2017 Cloudron UG
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If your software can interact with users remotely through a computer
network, you should also make sure that it provides a way for users to
get its source. For example, if your program is a web application, its
interface could display a "Source" link that leads users to an archive
of the code. There are many ways you could offer source, and different
solutions will be better for different programs; see section 13 for the
specific requirements.
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU AGPL, see
<http://www.gnu.org/licenses/>.
+25 -16
View File
@@ -1,3 +1,5 @@
![Translation status](https://translate.cloudron.io/widgets/cloudron/-/svg-badge.svg)
# Cloudron
[Cloudron](https://cloudron.io) is the best way to run apps on your server.
@@ -29,36 +31,43 @@ anyone to effortlessly host web applications on their server on their own terms.
* Trivially migrate to another server keeping your apps and data (for example, switch your
infrastructure provider or move to a bigger server).
* Comprehensive [REST API](https://cloudron.io/documentation/developer/api/).
* Comprehensive [REST API](https://docs.cloudron.io/api/).
* [CLI](https://cloudron.io/documentation/cli/) to configure apps.
* [CLI](https://docs.cloudron.io/custom-apps/cli/) to configure apps.
* Alerts, audit logs, graphs, dns management ... and much more
## Demo
Try our demo at https://my-demo.cloudron.me (username: cloudron password: cloudron).
Try our demo at https://my.demo.cloudron.io (username: cloudron password: cloudron).
## Installing
You can install the Cloudron platform on your own server or get a managed server
from cloudron.io. In either case, the Cloudron platform will keep your server and
apps up-to-date and secure.
[Install script](https://docs.cloudron.io/installation/) - [Pricing](https://cloudron.io/pricing.html)
* [Selfhosting](https://cloudron.io/documentation/installation/) - [Pricing](https://cloudron.io/pricing.html)
* [Managed Hosting](https://cloudron.io/managed.html)
**Note:** This repo is a small part of what gets installed on your server - there is
the dashboard, database addons, graph container, base image etc. Cloudron also relies
on external services such as the App Store for apps to be installed. As such, don't
clone this repo and npm install and expect something to work.
## Documentation
## License
* [Documentation](https://cloudron.io/documentation/)
Please note that the Cloudron code is under a source-available license. This is not the same as an
open source license but ensures the code is available for introspection (and hacking!).
## Related repos
## Contributions
The [base image repo](https://git.cloudron.io/cloudron/docker-base-image) is the parent image of all
the containers in the Cloudron.
Just to give some heads up, we are a bit restrictive in merging changes. We are a small team and
would like to keep our maintenance burden low. It might be best to discuss features first in the [forum](https://forum.cloudron.io),
to also figure out how many other people will use it to justify maintenance for a feature.
## Community
# Localization
![Translation status](https://translate.cloudron.io/widgets/cloudron/-/287x66-white.png)
## Support
* [Documentation](https://docs.cloudron.io/)
* [Forum](https://forum.cloudron.io/)
* [Chat](https://chat.cloudron.io/)
* [Support](mailto:support@cloudron.io)
+1
View File
@@ -0,0 +1 @@
# release version. do not edit manually
-193
View File
@@ -1,193 +0,0 @@
#!/bin/bash
set -eu -o pipefail
assertNotEmpty() {
: "${!1:? "$1 is not set."}"
}
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
readonly SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. && pwd)"
export JSON="${SOURCE_DIR}/node_modules/.bin/json"
INSTANCE_TYPE="t2.micro"
BLOCK_DEVICE="DeviceName=/dev/sda1,Ebs={VolumeSize=20,DeleteOnTermination=true,VolumeType=gp2}"
SSH_KEY_NAME="id_rsa_yellowtent"
revision=$(git rev-parse HEAD)
ami_name=""
server_id=""
server_ip=""
destroy_server="yes"
deploy_env="prod"
image_id=""
args=$(getopt -o "" -l "revision:,name:,no-destroy,env:,region:" -n "$0" -- "$@")
eval set -- "${args}"
while true; do
case "$1" in
--env) deploy_env="$2"; shift 2;;
--revision) revision="$2"; shift 2;;
--name) ami_name="$2"; shift 2;;
--no-destroy) destroy_server="no"; shift 2;;
--region)
case "$2" in
"us-east-1")
image_id="ami-6edd3078"
security_group="sg-a5e17fd9"
subnet_id="subnet-b8fbc0f1"
;;
"eu-central-1")
image_id="ami-5aee2235"
security_group="sg-19f5a770" # everything open on eu-central-1
subnet_id=""
;;
*)
echo "Unknown aws region $2"
exit 1
;;
esac
export AWS_DEFAULT_REGION="$2" # used by the aws cli tool
shift 2
;;
--) break;;
*) echo "Unknown option $1"; exit 1;;
esac
done
# TODO fix this
export AWS_ACCESS_KEY_ID="${AWS_ACCESS_KEY}"
export AWS_SECRET_ACCESS_KEY="${AWS_ACCESS_SECRET}"
readonly ssh_keys="${HOME}/.ssh/id_rsa_yellowtent"
readonly SSH="ssh -o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${ssh_keys}"
if [[ ! -f "${ssh_keys}" ]]; then
echo "caas ssh key is missing at ${ssh_keys} (pick it up from secrets repo)"
exit 1
fi
if [[ -z "${image_id}" ]]; then
echo "--region is required (us-east-1 or eu-central-1)"
exit 1
fi
function get_pretty_revision() {
local git_rev="$1"
local sha1=$(git rev-parse --short "${git_rev}" 2>/dev/null)
echo "${sha1}"
}
function wait_for_ssh() {
echo "=> Waiting for ssh connection"
while true; do
echo -n "."
if $SSH ubuntu@${server_ip} echo "hello"; then
echo ""
break
fi
sleep 5
done
}
now=$(date "+%Y-%m-%d-%H%M%S")
pretty_revision=$(get_pretty_revision "${revision}")
if [[ -z "${ami_name}" ]]; then
ami_name="box-${deploy_env}-${pretty_revision}-${now}"
fi
echo "=> Create EC2 instance"
id=$(aws ec2 run-instances --image-id "${image_id}" --instance-type "${INSTANCE_TYPE}" --security-group-ids "${security_group}" --block-device-mappings "${BLOCK_DEVICE}" --key-name "${SSH_KEY_NAME}" --subnet-id "${subnet_id}" --associate-public-ip-address \
| $JSON Instances \
| $JSON 0.InstanceId)
[[ -z "$id" ]] && exit 1
echo "Instance created ID $id"
echo "=> Waiting for instance to get a public IP"
while true; do
server_ip=$(aws ec2 describe-instances --instance-ids ${id} \
| $JSON Reservations.0.Instances \
| $JSON 0.PublicIpAddress)
if [[ ! -z "${server_ip}" ]]; then
echo ""
break
fi
echo -n "."
sleep 1
done
echo "Got public IP ${server_ip}"
wait_for_ssh
echo "=> Fetching cloudron-setup"
while true; do
if $SSH ubuntu@${server_ip} wget "https://cloudron.io/cloudron-setup" -O "cloudron-setup"; then
echo ""
break
fi
echo -n "."
sleep 5
done
echo "=> Running cloudron-setup"
$SSH ubuntu@${server_ip} sudo /bin/bash "cloudron-setup" --env "${deploy_env}" --provider "ami" --skip-reboot
wait_for_ssh
echo "=> Removing ssh key"
$SSH ubuntu@${server_ip} sudo rm /home/ubuntu/.ssh/authorized_keys /root/.ssh/authorized_keys
echo "=> Creating AMI"
image_id=$(aws ec2 create-image --instance-id "${id}" --name "${ami_name}" | $JSON ImageId)
[[ -z "$id" ]] && exit 1
echo "Creating AMI with Id ${image_id}"
echo "=> Waiting for AMI to be created"
while true; do
state=$(aws ec2 describe-images --image-ids ${image_id} \
| $JSON Images \
| $JSON 0.State)
if [[ "${state}" == "available" ]]; then
echo ""
break
fi
echo -n "."
sleep 5
done
if [[ "${destroy_server}" == "yes" ]]; then
echo "=> Deleting EC2 instance"
while true; do
state=$(aws ec2 terminate-instances --instance-id "${id}" \
| $JSON TerminatingInstances \
| $JSON 0.CurrentState.Name)
if [[ "${state}" == "shutting-down" ]]; then
echo ""
break
fi
echo -n "."
sleep 5
done
fi
echo ""
echo "Done."
echo ""
echo "New AMI is: ${image_id}"
echo ""
-179
View File
@@ -1,179 +0,0 @@
#!/bin/bash
set -eu -o pipefail
assertNotEmpty() {
: "${!1:? "$1 is not set."}"
}
readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
readonly SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")"/.. && pwd)"
export JSON="${SOURCE_DIR}/node_modules/.bin/json"
revision=$(git rev-parse HEAD)
box_name=""
server_id=""
server_ip=""
destroy_server="yes"
deploy_env="dev"
# Only GNU getopt supports long options. OS X comes bundled with the BSD getopt
# brew install gnu-getopt to get the GNU getopt on OS X
[[ $(uname -s) == "Darwin" ]] && GNU_GETOPT="/usr/local/opt/gnu-getopt/bin/getopt" || GNU_GETOPT="getopt"
readonly GNU_GETOPT
args=$(${GNU_GETOPT} -o "" -l "revision:,regions:,size:,name:,no-destroy,env:" -n "$0" -- "$@")
eval set -- "${args}"
while true; do
case "$1" in
--env) deploy_env="$2"; shift 2;;
--revision) revision="$2"; shift 2;;
--name) box_name="$2"; destroy_server="no"; shift 2;;
--no-destroy) destroy_server="no"; shift 2;;
--) break;;
*) echo "Unknown option $1"; exit 1;;
esac
done
echo "Creating digitalocean image"
if [[ "${deploy_env}" == "staging" ]]; then
assertNotEmpty DIGITAL_OCEAN_TOKEN_STAGING
export DIGITAL_OCEAN_TOKEN="${DIGITAL_OCEAN_TOKEN_STAGING}"
elif [[ "${deploy_env}" == "dev" ]]; then
assertNotEmpty DIGITAL_OCEAN_TOKEN_DEV
export DIGITAL_OCEAN_TOKEN="${DIGITAL_OCEAN_TOKEN_DEV}"
elif [[ "${deploy_env}" == "prod" ]]; then
assertNotEmpty DIGITAL_OCEAN_TOKEN_PROD
export DIGITAL_OCEAN_TOKEN="${DIGITAL_OCEAN_TOKEN_PROD}"
else
echo "No such env ${deploy_env}."
exit 1
fi
vps="/bin/bash ${SCRIPT_DIR}/digitalocean.sh"
readonly ssh_keys="${HOME}/.ssh/id_rsa_caas_${deploy_env}"
readonly scp202="scp -P 202 -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${ssh_keys}"
readonly scp22="scp -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${ssh_keys}"
readonly ssh202="ssh -p 202 -o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${ssh_keys}"
readonly ssh22="ssh -o IdentitiesOnly=yes -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i ${ssh_keys}"
if [[ ! -f "${ssh_keys}" ]]; then
echo "caas ssh key is missing at ${ssh_keys} (pick it up from secrets repo)"
exit 1
fi
function get_pretty_revision() {
local git_rev="$1"
local sha1=$(git rev-parse --short "${git_rev}" 2>/dev/null)
echo "${sha1}"
}
now=$(date "+%Y-%m-%d-%H%M%S")
pretty_revision=$(get_pretty_revision "${revision}")
if [[ -z "${box_name}" ]]; then
# if you change this, change the regexp is appstore/janitor.js
box_name="box-${deploy_env}-${pretty_revision}-${now}" # remove slashes
# create a new server if no name given
if ! caas_ssh_key_id=$($vps get_ssh_key_id "caas"); then
echo "Could not query caas ssh key"
exit 1
fi
echo "Detected caas ssh key id: ${caas_ssh_key_id}"
echo "Creating Server with name [${box_name}]"
if ! server_id=$($vps create ${caas_ssh_key_id} ${box_name}); then
echo "Failed to create server"
exit 1
fi
echo "Created server with id: ${server_id}"
# If we run scripts overenthusiastically without the wait, setup script randomly fails
echo -n "Waiting 120 seconds for server creation"
for i in $(seq 1 24); do
echo -n "."
sleep 5
done
echo ""
else
if ! server_id=$($vps get_id "${box_name}"); then
echo "Could not determine id from name"
exit 1
fi
echo "Reusing server with id: ${server_id}"
$vps power_on "${server_id}"
fi
# Query until we get an IP
while true; do
echo "Trying to get the server IP"
if server_ip=$($vps get_ip "${server_id}"); then
echo "Server IP : [${server_ip}]"
break
fi
echo "Timedout, trying again in 10 seconds"
sleep 10
done
while true; do
echo "Trying to copy init script to server"
if $scp22 "${SCRIPT_DIR}/initializeBaseUbuntuImage.sh" root@${server_ip}:.; then
break
fi
echo "Timedout, trying again in 30 seconds"
sleep 30
done
echo "Copying infra_version.js"
$scp22 "${SCRIPT_DIR}/../src/infra_version.js" root@${server_ip}:.
echo "Copying box source"
cd "${SOURCE_DIR}"
git archive --format=tar HEAD | $ssh22 "root@${server_ip}" "cat - > /tmp/box.tar.gz"
echo "Executing init script"
if ! $ssh22 "root@${server_ip}" "/bin/bash /root/initializeBaseUbuntuImage.sh caas"; then
echo "Init script failed"
exit 1
fi
echo "Shutting down server with id : ${server_id}"
$ssh22 "root@${server_ip}" "shutdown -f now" || true # shutdown sometimes terminates ssh connection immediately making this command fail
# wait 10 secs for actual shutdown
echo "Waiting for 10 seconds for server to shutdown"
sleep 30
echo "Powering off server"
if ! $vps power_off "${server_id}"; then
echo "Could not power off server"
exit 1
fi
snapshot_name="box-${deploy_env}-${pretty_revision}-${now}"
echo "Snapshotting as ${snapshot_name}"
if ! image_id=$($vps snapshot "${server_id}" "${snapshot_name}"); then
echo "Could not snapshot and get image id"
exit 1
fi
if [[ "${destroy_server}" == "yes" ]]; then
echo "Destroying server"
if ! $vps destroy "${server_id}"; then
echo "Could not destroy server"
exit 1
fi
else
echo "Skipping server destroy"
fi
echo "Transferring image ${image_id} to other regions"
$vps transfer_image_to_all_regions "${image_id}"
echo "Done."
-261
View File
@@ -1,261 +0,0 @@
#!/bin/bash
if [[ -z "${DIGITAL_OCEAN_TOKEN}" ]]; then
echo "Script requires DIGITAL_OCEAN_TOKEN env to be set"
exit 1
fi
if [[ -z "${JSON}" ]]; then
echo "Script requires JSON env to be set to path of JSON binary"
exit 1
fi
readonly CURL="curl --retry 5 -s -u ${DIGITAL_OCEAN_TOKEN}:"
function debug() {
echo "$@" >&2
}
function get_ssh_key_id() {
id=$($CURL "https://api.digitalocean.com/v2/account/keys" \
| $JSON ssh_keys \
| $JSON -c "this.name === \"$1\"" \
| $JSON 0.id)
[[ -z "$id" ]] && exit 1
echo "$id"
}
function create_droplet() {
local ssh_key_id="$1"
local box_name="$2"
local image_region="sfo1"
local ubuntu_image_slug="ubuntu-16-04-x64"
local box_size="1gb"
local data="{\"name\":\"${box_name}\",\"size\":\"${box_size}\",\"region\":\"${image_region}\",\"image\":\"${ubuntu_image_slug}\",\"ssh_keys\":[ \"${ssh_key_id}\" ],\"backups\":false}"
id=$($CURL -X POST -H 'Content-Type: application/json' -d "${data}" "https://api.digitalocean.com/v2/droplets" | $JSON droplet.id)
[[ -z "$id" ]] && exit 1
echo "$id"
}
function get_droplet_ip() {
local droplet_id="$1"
ip=$($CURL "https://api.digitalocean.com/v2/droplets/${droplet_id}" | $JSON "droplet.networks.v4[0].ip_address")
[[ -z "$ip" ]] && exit 1
echo "$ip"
}
function get_droplet_id() {
local droplet_name="$1"
id=$($CURL "https://api.digitalocean.com/v2/droplets?per_page=200" | $JSON "droplets" | $JSON -c "this.name === '${droplet_name}'" | $JSON "[0].id")
[[ -z "$id" ]] && exit 1
echo "$id"
}
function power_off_droplet() {
local droplet_id="$1"
local data='{"type":"power_off"}'
local response=$($CURL -X POST -H 'Content-Type: application/json' -d "${data}" "https://api.digitalocean.com/v2/droplets/${droplet_id}/actions")
local event_id=`echo "${response}" | $JSON action.id`
if [[ -z "${event_id}" ]]; then
debug "Got no event id, assuming already powered off."
debug "Response: ${response}"
return
fi
debug "Powered off droplet. Event id: ${event_id}"
debug -n "Waiting for droplet to power off"
while true; do
local event_status=`$CURL "https://api.digitalocean.com/v2/droplets/${droplet_id}/actions/${event_id}" | $JSON action.status`
if [[ "${event_status}" == "completed" ]]; then
break
fi
debug -n "."
sleep 10
done
debug ""
}
function power_on_droplet() {
local droplet_id="$1"
local data='{"type":"power_on"}'
local event_id=`$CURL -X POST -H 'Content-Type: application/json' -d "${data}" "https://api.digitalocean.com/v2/droplets/${droplet_id}/actions" | $JSON action.id`
debug "Powered on droplet. Event id: ${event_id}"
if [[ -z "${event_id}" ]]; then
debug "Got no event id, assuming already powered on"
return
fi
debug -n "Waiting for droplet to power on"
while true; do
local event_status=`$CURL "https://api.digitalocean.com/v2/droplets/${droplet_id}/actions/${event_id}" | $JSON action.status`
if [[ "${event_status}" == "completed" ]]; then
break
fi
debug -n "."
sleep 10
done
debug ""
}
function get_image_id() {
local snapshot_name="$1"
local image_id=""
if ! response=$($CURL "https://api.digitalocean.com/v2/images?per_page=200"); then
echo "Failed to get image listing. ${response}"
return 1
fi
if ! image_id=$(echo "$response" \
| $JSON images \
| $JSON -c "this.name === \"${snapshot_name}\"" 0.id); then
echo "Failed to parse curl response: ${response}"
return 1
fi
if [[ -z "${image_id}" ]]; then
echo "Failed to get image id of ${snapshot_name}. reponse: ${response}"
return 1
fi
echo "${image_id}"
}
function snapshot_droplet() {
local droplet_id="$1"
local snapshot_name="$2"
local data="{\"type\":\"snapshot\",\"name\":\"${snapshot_name}\"}"
local event_id=`$CURL -X POST -H 'Content-Type: application/json' -d "${data}" "https://api.digitalocean.com/v2/droplets/${droplet_id}/actions" | $JSON action.id`
debug "Droplet snapshotted as ${snapshot_name}. Event id: ${event_id}"
debug -n "Waiting for snapshot to complete"
while true; do
if ! response=$($CURL "https://api.digitalocean.com/v2/droplets/${droplet_id}/actions/${event_id}"); then
echo "Could not get action status. ${response}"
continue
fi
if ! event_status=$(echo "${response}" | $JSON action.status); then
echo "Could not parse action.status from response. ${response}"
continue
fi
if [[ "${event_status}" == "completed" ]]; then
break
fi
debug -n "."
sleep 10
done
debug "! done"
if ! image_id=$(get_image_id "${snapshot_name}"); then
return 1
fi
echo "${image_id}"
}
function destroy_droplet() {
local droplet_id="$1"
# TODO: check for 204 status
$CURL -X DELETE "https://api.digitalocean.com/v2/droplets/${droplet_id}"
debug "Droplet destroyed"
debug ""
}
function transfer_image() {
local image_id="$1"
local region_slug="$2"
local data="{\"type\":\"transfer\",\"region\":\"${region_slug}\"}"
local event_id=`$CURL -X POST -H 'Content-Type: application/json' -d "${data}" "https://api.digitalocean.com/v2/images/${image_id}/actions" | $JSON action.id`
echo "${event_id}"
}
function wait_for_image_event() {
local image_id="$1"
local event_id="$2"
debug -n "Waiting for ${event_id}"
while true; do
local event_status=`$CURL "https://api.digitalocean.com/v2/images/${image_id}/actions/${event_id}" | $JSON action.status`
if [[ "${event_status}" == "completed" ]]; then
break
fi
debug -n "."
sleep 10
done
debug ""
}
function transfer_image_to_all_regions() {
local image_id="$1"
xfer_events=()
image_regions=(ams2) ## sfo1 is where the image is created
for image_region in ${image_regions[@]}; do
xfer_event=$(transfer_image ${image_id} ${image_region})
echo "Image transfer to ${image_region} initiated. Event id: ${xfer_event}"
xfer_events+=("${xfer_event}")
sleep 1
done
echo "Image transfer initiated, but they will take some time to get transferred."
for xfer_event in ${xfer_events[@]}; do
$vps wait_for_image_event "${image_id}" "${xfer_event}"
done
}
if [[ $# -lt 1 ]]; then
debug "<command> <params...>"
exit 1
fi
case $1 in
get_ssh_key_id)
get_ssh_key_id "${@:2}"
;;
create)
create_droplet "${@:2}"
;;
get_id)
get_droplet_id "${@:2}"
;;
get_ip)
get_droplet_ip "${@:2}"
;;
power_on)
power_on_droplet "${@:2}"
;;
power_off)
power_off_droplet "${@:2}"
;;
snapshot)
snapshot_droplet "${@:2}"
;;
destroy)
destroy_droplet "${@:2}"
;;
transfer_image_to_all_regions)
transfer_image_to_all_regions "${@:2}"
;;
*)
echo "Unknown command $1"
exit 1
esac
-107
View File
@@ -1,107 +0,0 @@
#!/bin/bash
set -euv -o pipefail
readonly SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
readonly arg_provider="${1:-generic}"
readonly arg_infraversionpath="${SOURCE_DIR}/${2:-}"
function die {
echo $1
exit 1
}
export DEBIAN_FRONTEND=noninteractive
apt-get -o Dpkg::Options::="--force-confdef" update -y
apt-get -o Dpkg::Options::="--force-confdef" dist-upgrade -y
echo "==> Installing required packages"
debconf-set-selections <<< 'mysql-server mysql-server/root_password password password'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password password'
# this enables automatic security upgrades (https://help.ubuntu.com/community/AutomaticSecurityUpdates)
apt-get -y install \
acl \
awscli \
build-essential \
cron \
curl \
dmsetup \
iptables \
logrotate \
mysql-server-5.7 \
nginx-full \
openssh-server \
pwgen \
rcconf \
swaks \
unattended-upgrades \
unbound \
xfsprogs
# this ensures that unattended upgades are enabled, if it was disabled during ubuntu install time (see #346)
# debconf-set-selection of unattended-upgrades/enable_auto_updates + dpkg-reconfigure does not work
cp /usr/share/unattended-upgrades/20auto-upgrades /etc/apt/apt.conf.d/20auto-upgrades
echo "==> Installing node.js"
mkdir -p /usr/local/node-8.9.3
curl -sL https://nodejs.org/dist/v8.9.3/node-v8.9.3-linux-x64.tar.gz | tar zxvf - --strip-components=1 -C /usr/local/node-8.9.3
ln -sf /usr/local/node-8.9.3/bin/node /usr/bin/node
ln -sf /usr/local/node-8.9.3/bin/npm /usr/bin/npm
apt-get install -y python # Install python which is required for npm rebuild
[[ "$(python --version 2>&1)" == "Python 2.7."* ]] || die "Expecting python version to be 2.7.x"
# https://docs.docker.com/engine/installation/linux/ubuntulinux/
echo "==> Installing Docker"
# create systemd drop-in file
mkdir -p /etc/systemd/system/docker.service.d
echo -e "[Service]\nExecStart=\nExecStart=/usr/bin/dockerd -H fd:// --log-driver=journald --exec-opt native.cgroupdriver=cgroupfs --storage-driver=overlay2" > /etc/systemd/system/docker.service.d/cloudron.conf
curl -sL https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb -o /tmp/docker.deb
# apt install with install deps (as opposed to dpkg -i)
apt install -y /tmp/docker.deb
rm /tmp/docker.deb
storage_driver=$(docker info | grep "Storage Driver" | sed 's/.*: //')
if [[ "${storage_driver}" != "overlay2" ]]; then
echo "Docker is using "${storage_driver}" instead of overlay2"
exit 1
fi
echo "==> Enable memory accounting"
apt-get -y install grub2
sed -e 's/^GRUB_CMDLINE_LINUX="\(.*\)"$/GRUB_CMDLINE_LINUX="\1 cgroup_enable=memory swapaccount=1 panic_on_oops=1 panic=5"/' -i /etc/default/grub
update-grub
echo "==> Downloading docker images"
if [ ! -f "${arg_infraversionpath}/infra_version.js" ]; then
echo "No infra_versions.js found"
exit 1
fi
images=$(node -e "var i = require('${arg_infraversionpath}/infra_version.js'); console.log(i.baseImages.join(' '), Object.keys(i.images).map(function (x) { return i.images[x].tag; }).join(' '));")
echo -e "\tPulling docker images: ${images}"
for image in ${images}; do
docker pull "${image}"
done
echo "==> Install collectd"
if ! apt-get install -y collectd collectd-utils; then
# FQDNLookup is true in default debian config. The box code has a custom collectd.conf that fixes this
echo "Failed to install collectd. Presumably because of http://mailman.verplant.org/pipermail/collectd/2015-March/006491.html"
sed -e 's/^FQDNLookup true/FQDNLookup false/' -i /etc/collectd/collectd.conf
fi
# Disable bind for good measure (on online.net, kimsufi servers these are pre-installed and conflicts with unbound)
systemctl stop bind9 || true
systemctl disable bind9 || true
# on ovh images dnsmasq seems to run by default
systemctl stop dnsmasq || true
systemctl disable dnsmasq || true
+73 -45
View File
@@ -2,55 +2,83 @@
'use strict';
require('supererror')({ splatchError: true });
const constants = require('./src/constants.js'),
fs = require('fs'),
ldapServer = require('./src/ldapserver.js'),
oidc = require('./src/oidc.js'),
paths = require('./src/paths.js'),
proxyAuth = require('./src/proxyauth.js'),
safe = require('safetydance'),
server = require('./src/server.js'),
directoryServer = require('./src/directoryserver.js');
// remove timestamp from debug() based output
require('debug').formatArgs = function formatArgs(args) {
args[0] = this.namespace + ' ' + args[0];
};
let logFd;
var appHealthMonitor = require('./src/apphealthmonitor.js'),
async = require('async'),
config = require('./src/config.js'),
ldap = require('./src/ldap.js'),
server = require('./src/server.js');
async function setupLogging() {
if (constants.TEST) return;
console.log();
console.log('==========================================');
console.log(' Cloudron will use the following settings ');
console.log('==========================================');
console.log();
console.log(' Environment: ', config.CLOUDRON ? 'CLOUDRON' : 'TEST');
console.log(' Version: ', config.version());
console.log(' Admin Origin: ', config.adminOrigin());
console.log(' Appstore API server origin: ', config.apiServerOrigin());
console.log(' Appstore Web server origin: ', config.webServerOrigin());
console.log();
console.log('==========================================');
console.log();
logFd = fs.openSync(paths.BOX_LOG_FILE, 'a');
// we used to write using a stream before but it caches internally and there is no way to flush it when things crash
process.stdout.write = process.stderr.write = function (...args) {
const callback = typeof args[args.length-1] === 'function' ? args.pop() : function () {}; // callback is required for fs.write
fs.write.apply(fs, [logFd, ...args, callback]);
};
}
async.series([
server.start,
ldap.start,
appHealthMonitor.start,
], function (error) {
if (error) {
console.error('Error starting server', error);
process.exit(1);
}
console.log('Cloudron is up and running');
});
// this is also used as the 'uncaughtException' handler which can only have synchronous functions
function exitSync(status) {
if (status.error) fs.write(logFd, status.error.stack + '\n', function () {});
fs.fsyncSync(logFd);
fs.closeSync(logFd);
process.exit(status.code);
}
var NOOP_CALLBACK = function () { };
async function startServers() {
await setupLogging();
await server.start(); // do this first since it also inits the database
await proxyAuth.start();
await ldapServer.start();
process.on('SIGINT', function () {
server.stop(NOOP_CALLBACK);
ldap.stop(NOOP_CALLBACK);
setTimeout(process.exit.bind(process), 3000);
});
const conf = await directoryServer.getConfig();
if (conf.enabled) await directoryServer.start();
}
process.on('SIGTERM', function () {
server.stop(NOOP_CALLBACK);
ldap.stop(NOOP_CALLBACK);
setTimeout(process.exit.bind(process), 3000);
});
async function main() {
const [error] = await safe(startServers());
if (error) return exitSync({ error: new Error(`Error starting server: ${JSON.stringify(error)}`), code: 1 });
// require this here so that logging handler is already setup
const debug = require('debug')('box:box');
process.on('SIGHUP', async function () {
debug('Received SIGHUP. Re-reading configs.');
const conf = await directoryServer.getConfig();
if (conf.enabled) await directoryServer.checkCertificate();
});
process.on('SIGINT', async function () {
debug('Received SIGINT. Shutting down.');
await proxyAuth.stop();
await server.stop();
await directoryServer.stop();
await ldapServer.stop();
await oidc.stop();
setTimeout(process.exit.bind(process), 3000);
});
process.on('SIGTERM', async function () {
debug('Received SIGTERM. Shutting down.');
await proxyAuth.stop();
await server.stop();
await directoryServer.stop();
await ldapServer.stop();
await oidc.stop();
setTimeout(process.exit.bind(process), 3000);
});
process.on('uncaughtException', (error) => exitSync({ error, code: 1 }));
}
main();
-16
View File
@@ -1,16 +0,0 @@
#!/usr/bin/env node
'use strict';
var sendFailureLogs = require('./src/logcollector').sendFailureLogs;
function main() {
if (process.argv.length !== 3) return console.error('Usage: crashnotifier.js <processName>');
var processName = process.argv[2];
console.log('Started crash notifier for', processName);
sendFailureLogs(processName, { unit: processName });
}
main();
+6
View File
@@ -0,0 +1,6 @@
# following files are skipped when exporting using git archive
test export-ignore
docs export-ignore
.gitattributes export-ignore
.gitignore export-ignore
+11
View File
@@ -0,0 +1,11 @@
dist/
node_modules/
# vim swap files
*.swp
# these are not done yet
src/translation/ja.json
src/translation/pl.json
src/translation/si.json
src/translation/gl.json
+20
View File
@@ -0,0 +1,20 @@
{
"node": true,
"browser": true,
"unused": true,
"esversion": 6,
"globalstrict": false,
"predef": [
"$",
"angular",
"async",
"describe",
"it",
"before",
"after",
"require",
"monaco",
"Mimer",
"ISTATES"
]
}
+35
View File
@@ -0,0 +1,35 @@
The Cloudron Subscription license
Copyright (c) 2022 Cloudron UG
With regard to the Cloudron Software:
This software and associated documentation files (the "Software") may only be
used in production, if you (and any entity that you represent) have agreed to,
and are in compliance with, the Cloudron Subscription Terms of Service, available
at https://cloudron.io/legal/terms.html (the “Subscription Terms”), or other
agreement governing the use of the Software, as agreed by you and Cloudron,
and otherwise have a valid Cloudron Subscription. Subject to the foregoing sentence,
you are free to modify this Software and publish patches to the Software. You agree
that Subscription and/or its licensors (as applicable) retain all right, title and
interest in and to all such modifications and/or patches, and all such modifications
and/or patches may only be used, copied, modified, displayed, distributed, or otherwise
exploited with a valid Cloudron subscription. Notwithstanding the foregoing, you may copy
and modify the Software for development and testing purposes, without requiring a
subscription. You agree that Cloudron and/or its licensors (as applicable) retain
all right, title and interest in and to all such modifications. You are not
granted any other rights beyond what is expressly stated herein. Subject to the
foregoing, it is forbidden to copy, merge, publish, distribute, sublicense,
and/or sell the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
For all third party components incorporated into the Cloudron Software, those
components are licensed under the original license provided by the owner of the
applicable component.
+20
View File
@@ -0,0 +1,20 @@
# Cloudron Dashboard
This is the front end code of Cloudron. The backend code is [here](https://git.cloudron.io/cloudron/box).
## Developing
* `npm install`
* `gulp develop --api-origin=https://my.example.com`
## License
Please note that the Cloudron code is under a source-available license. This is not the same as an
open source license but ensures the code is available for inspection (and hacking!).
## Contributions
Just to give a heads-up, we are a bit restrictive in merging changes. We are a small team and
would like to keep our maintenance burden low. It might be best to first discuss features in the [forum](https://forum.cloudron.io),
which also helps to determine how many other people will use it to justify maintenance for a feature.
+214
View File
@@ -0,0 +1,214 @@
/* jslint node:true */
'use strict';
const argv = require('yargs').argv,
concat = require('gulp-concat'),
ejs = require('gulp-ejs'),
execSync = require('child_process').execSync,
fs = require('fs'),
gulp = require('gulp'),
sass = require('gulp-sass')(require('sass')),
serve = require('gulp-serve'),
sourcemaps = require('gulp-sourcemaps');
if (argv.help || argv.h) {
console.log('Supported arguments for "gulp develop":');
console.log(' --api-origin <cloudron api uri>');
console.log(' --revision <revision>');
console.log(' --appstore-console-origin <appstore console uri>');
process.exit(1);
}
const revision = argv.revision || '';
let apiOrigin = '';
if (argv.apiOrigin) {
if (argv.apiOrigin.indexOf('https://') === 0) apiOrigin = argv.apiOrigin;
else apiOrigin = 'https://' + argv.apiOrigin;
}
var appstore = {
consoleOrigin: argv.appstoreConsoleOrigin || ''
};
console.log();
console.log('Cloudron API: %s', apiOrigin || 'default');
console.log('Building for revision: %s', revision);
console.log();
console.log('Overriding appstore origin:');
console.log(' Console: %s', appstore.consoleOrigin || 'no');
console.log();
gulp.task('fontawesome', function () {
return gulp.src('node_modules/@fortawesome/fontawesome-free/**/*')
.pipe(gulp.dest('dist/3rdparty/fontawesome/'));
});
gulp.task('bootstrap', function () {
return gulp.src('node_modules/bootstrap-sass/assets/javascripts/bootstrap.min.js')
.pipe(gulp.dest('dist/3rdparty/js'));
});
gulp.task('moment', function () {
return gulp.src('node_modules/moment/min/*')
.pipe(gulp.dest('dist/3rdparty/js'));
});
gulp.task('3rdparty-copy', function () {
return gulp.src([
'src/3rdparty/**/*.js',
'src/3rdparty/**/*.map',
'src/3rdparty/**/*.css',
'src/3rdparty/**/*.otf',
'src/3rdparty/**/*.eot',
'src/3rdparty/**/*.svg',
'src/3rdparty/**/*.gif',
'src/3rdparty/**/*.ttf',
'node_modules/chart.js/dist/chart.umd.js'
]).pipe(gulp.dest('dist/3rdparty/'));
});
gulp.task('3rdparty', gulp.series(['3rdparty-copy', 'moment', 'bootstrap', 'fontawesome']));
// --------------
// JavaScript
// --------------
gulp.task('js-index', function () {
return gulp.src([
'src/js/index.js',
'src/js/client.js',
'src/js/utils.js',
'src/views/*.js'
])
.pipe(ejs({ apiOrigin: apiOrigin, revision: revision, appstore: appstore }, {}, { ext: '.js' }))
.pipe(sourcemaps.init())
.pipe(concat('index.js', { newLine: ';' }))
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist/js'));
});
gulp.task('js-passwordreset', function () {
return gulp.src(['src/js/passwordreset.js', 'src/js/utils.js'])
.pipe(ejs({ apiOrigin: apiOrigin, revision: revision, appstore: appstore }, {}, { ext: '.js' }))
.pipe(sourcemaps.init())
.pipe(concat('passwordreset.js', { newLine: ';' }))
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist/js'));
});
gulp.task('js-setupaccount', function () {
return gulp.src(['src/js/setupaccount.js', 'src/js/utils.js'])
.pipe(ejs({ apiOrigin: apiOrigin, revision: revision, appstore: appstore }, {}, { ext: '.js' }))
.pipe(sourcemaps.init())
.pipe(concat('setupaccount.js', { newLine: ';' }))
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist/js'));
});
gulp.task('js-setup', function () {
return gulp.src(['src/js/setup.js', 'src/js/client.js', 'src/js/utils.js'])
.pipe(ejs({ apiOrigin: apiOrigin, revision: revision, appstore: appstore }, {}, { ext: '.js' }))
.pipe(sourcemaps.init())
.pipe(concat('setup.js', { newLine: ';' }))
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist/js'));
});
gulp.task('js-setupdns', function () {
return gulp.src(['src/js/setupdns.js', 'src/js/client.js', 'src/js/utils.js'])
.pipe(ejs({ apiOrigin: apiOrigin, revision: revision, appstore: appstore }, {}, { ext: '.js' }))
.pipe(sourcemaps.init())
.pipe(concat('setupdns.js', { newLine: ';' }))
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist/js'));
});
gulp.task('js-restore', function () {
return gulp.src(['src/js/restore.js', 'src/js/client.js', 'src/js/utils.js'])
.pipe(ejs({ apiOrigin: apiOrigin, revision: revision, appstore: appstore }, {}, { ext: '.js' }))
.pipe(sourcemaps.init())
.pipe(concat('restore.js', { newLine: ';' }))
.pipe(sourcemaps.write())
.pipe(gulp.dest('dist/js'));
});
gulp.task('js', gulp.series([ 'js-index', 'js-passwordreset', 'js-setupaccount', 'js-setup', 'js-setupdns', 'js-restore' ]));
// --------------
// HTML
// --------------
gulp.task('html-views', function () {
return gulp.src('src/views/**/*.html').pipe(gulp.dest('dist/views'));
});
gulp.task('html-templates', function () {
return gulp.src('src/templates/**/*').pipe(gulp.dest('dist/templates'));
});
gulp.task('html-raw', function () {
return gulp.src('src/*.html').pipe(ejs({ apiOrigin: apiOrigin, revision: revision }, {}, { ext: '.html' })).pipe(gulp.dest('dist'));
});
gulp.task('html', gulp.series(['html-views', 'html-templates', 'html-raw']));
// --------------
// CSS
// --------------
gulp.task('css', function () {
return gulp.src('src/*.scss')
.pipe(sass({ includePaths: ['node_modules/bootstrap-sass/assets/stylesheets/'] }).on('error', sass.logError))
.pipe(gulp.dest('dist'));
});
gulp.task('images', function () {
return gulp.src('src/img/**')
.pipe(gulp.dest('dist/img'));
});
gulp.task('translation', function () {
return gulp.src('src/translation/**')
.pipe(gulp.dest('dist/translation'));
});
gulp.task('timezones', function (done) {
execSync('./scripts/createTimezones.js ./dist/js/timezones.js');
done();
});
// --------------
// Utilities
// --------------
gulp.task('clean', function (done) {
fs.rm('dist', { recursive: true, force: true }, done);
});
gulp.task('default', gulp.series(['clean', 'html', 'js', 'timezones', '3rdparty', 'translation', 'images', 'css']));
gulp.task('watch', function (done) {
gulp.watch(['src/*.scss'], gulp.series(['css']));
gulp.watch(['src/img/*'], gulp.series(['images']));
gulp.watch(['src/translation/*'], gulp.series(['translation']));
gulp.watch(['src/**/*.html'], gulp.series(['html']));
gulp.watch(['src/views/*.html'], gulp.series(['html-views']));
gulp.watch(['src/templates/*.html'], gulp.series(['html-templates']));
gulp.watch(['scripts/createTimezones.js', 'src/js/utils.js'], gulp.series(['timezones']));
gulp.watch(['src/js/setup.js', 'src/js/client.js', 'src/js/utils.js'], gulp.series(['js-setup']));
gulp.watch(['src/js/setupdns.js', 'src/js/client.js', 'src/js/utils.js'], gulp.series(['js-setupdns']));
gulp.watch(['src/js/restore.js', 'src/js/client.js', 'src/js/utils.js'], gulp.series(['js-restore']));
gulp.watch(['src/js/passwordreset.js', 'src/js/utils.js'], gulp.series(['js-passwordreset']));
gulp.watch(['src/js/setupaccount.js', 'src/js/utils.js'], gulp.series(['js-setupaccount']));
gulp.watch(['src/js/index.js', 'src/js/client.js', 'src/views/*.js', 'src/js/utils.js'], gulp.series(['js-index']));
gulp.watch(['src/3rdparty/**/*'], gulp.series(['3rdparty']));
done();
});
gulp.task('serve', serve({ root: 'dist', port: 4000, hostname: '0.0.0.0' }));
gulp.task('develop', gulp.series(['default', 'watch', 'serve']));
+9243
View File
File diff suppressed because it is too large Load Diff
+34
View File
@@ -0,0 +1,34 @@
{
"name": "dashboard",
"version": "1.0.0",
"description": "[Cloudron](https://cloudron.io) is the best way to run apps on your server.",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"update-translations": "curl https://translate.cloudron.io/api/components/cloudron/dashboard/file/ -o lang.zip && unzip -jo lang.zip -d ./src/translation/ && rm lang.zip"
},
"repository": {
"type": "git",
"url": "ssh://git@git.cloudron.io:6000/cloudron/dashboard.git"
},
"author": "",
"license": "SEE LICENSE IN LICENSE",
"dependencies": {
"@fortawesome/fontawesome-free": "^6.5.1",
"bootstrap-sass": "^3.4.3",
"chart.js": "^4.4.2",
"gulp": "^4.0.2",
"gulp-concat": "^2.6.1",
"gulp-ejs": "^5.1.0",
"gulp-sass": "^5.1.0",
"gulp-serve": "^1.4.0",
"gulp-sourcemaps": "^3.0.0",
"moment": "^2.30.1",
"sass": "^1.71.1",
"yargs": "^17.7.2"
},
"eslintConfig": {
"env": {
"browser": true
}
}
}
+66
View File
@@ -0,0 +1,66 @@
#!/usr/bin/env node
// This script creates many users to test the UI for such a case
// WARNING keep those in sync with delUsers.js
const USERNAME_PREFIX = 'manyuser';
const PASSOWRD_PREFIX = 'password';
const DISPLAYNAME_PREFIX = 'User ';
const EMAIL_DOMAIN = 'example.com'; // addresses will be username@EMAIL_DOMAIN
const COUNT = 100;
var async = require('async'),
readlineSync = require('readline-sync'),
superagent = require('superagent');
if (process.argv.length !== 3) {
console.log('Usage: ./addUsers.js <cloudronDomain>');
process.exit(1);
}
const cloudronDomain = process.argv[2];
function getAccessToken(callback) {
let username = readlineSync.question('Username: ', {});
let password = readlineSync.question('Password: ', { noEchoBack: true });
superagent.post(`https://${cloudronDomain}/api/v1/auth/login`, { username: username, password: password }).end(function (error, result) {
if (error || result.statusCode !== 200) {
console.log('Login failed');
return getAccessToken(callback);
}
callback(result.body.accessToken);
});
}
console.log(`Login to ${cloudronDomain}`);
getAccessToken(function (accessToken) {
console.log(`Now creating ${COUNT} users...`);
async.timesLimit(COUNT, 5, function (n, next) {
let user = {
username: USERNAME_PREFIX + n,
password: PASSOWRD_PREFIX + n,
email: USERNAME_PREFIX + n + '@' + EMAIL_DOMAIN,
displayName: DISPLAYNAME_PREFIX + n
};
superagent.post(`https://${cloudronDomain}/api/v1/users`, user).query({ access_token: accessToken }).end(function (error) {
if (error) return next(error);
process.stdout.write('.');
next();
});
}, function (error) {
console.log();
if (error) {
console.error(error);
process.exit(1);
}
console.log('Done');
});
});
+387
View File
@@ -0,0 +1,387 @@
#!/usr/bin/env node
// This script creates a specific timezones.js to be consumed by the dashboard
var execSync = require('child_process').execSync,
fs = require('fs'),
path = require('path');
if (process.argv.length !== 3) {
console.log('Usage: createTimezones.js <output.js>');
process.exit(1);
}
const destinationFilePath = path.resolve(process.argv[2]);
console.log('Creating timezone info at:', destinationFilePath);
var ubuntuTimezones = execSync('timedatectl list-timezones --no-pager').toString().split('\n').filter(function (t) { return !!t; });
// from https://github.com/dmfilipenko/timezones.json/blob/master/timezones.json
var details = [
{ name: 'UTC', offset: '+00:00' },
{ name: 'Africa/Abidjan', offset: '+00:00' },
{ name: 'Africa/Accra', offset: '+00:00' },
{ name: 'Africa/Algiers', offset: '+01:00' },
{ name: 'Africa/Bissau', offset: '+00:00' },
{ name: 'Africa/Cairo', offset: '+02:00' },
{ name: 'Africa/Casablanca', offset: '+01:00' },
{ name: 'Africa/Ceuta', offset: '+01:00' },
{ name: 'Africa/El_Aaiun', offset: '+00:00' },
{ name: 'Africa/Johannesburg', offset: '+02:00' },
{ name: 'Africa/Juba', offset: '+03:00' },
{ name: 'Africa/Khartoum', offset: '+02:00' },
{ name: 'Africa/Lagos', offset: '+01:00' },
{ name: 'Africa/Maputo', offset: '+02:00' },
{ name: 'Africa/Monrovia', offset: '+00:00' },
{ name: 'Africa/Nairobi', offset: '+03:00' },
{ name: 'Africa/Ndjamena', offset: '+01:00' },
{ name: 'Africa/Tripoli', offset: '+02:00' },
{ name: 'Africa/Tunis', offset: '+01:00' },
{ name: 'Africa/Windhoek', offset: '+02:00' },
{ name: 'America/Adak', offset: '10:00' },
{ name: 'America/Anchorage', offset: '09:00' },
{ name: 'America/Araguaina', offset: '03:00' },
{ name: 'America/Argentina/Buenos_Aires', offset: '03:00' },
{ name: 'America/Argentina/Catamarca', offset: '03:00' },
{ name: 'America/Argentina/Cordoba', offset: '03:00' },
{ name: 'America/Argentina/Jujuy', offset: '03:00' },
{ name: 'America/Argentina/La_Rioja', offset: '03:00' },
{ name: 'America/Argentina/Mendoza', offset: '03:00' },
{ name: 'America/Argentina/Rio_Gallegos', offset: '03:00' },
{ name: 'America/Argentina/Salta', offset: '03:00' },
{ name: 'America/Argentina/San_Juan', offset: '03:00' },
{ name: 'America/Argentina/San_Luis', offset: '03:00' },
{ name: 'America/Argentina/Tucuman', offset: '03:00' },
{ name: 'America/Argentina/Ushuaia', offset: '03:00' },
{ name: 'America/Asuncion', offset: '04:00' },
{ name: 'America/Atikokan', offset: '05:00' },
{ name: 'America/Bahia', offset: '03:00' },
{ name: 'America/Bahia_Banderas', offset: '06:00' },
{ name: 'America/Barbados', offset: '04:00' },
{ name: 'America/Belem', offset: '03:00' },
{ name: 'America/Belize', offset: '06:00' },
{ name: 'America/Blanc-Sablon', offset: '04:00' },
{ name: 'America/Boa_Vista', offset: '04:00' },
{ name: 'America/Bogota', offset: '05:00' },
{ name: 'America/Boise', offset: '07:00' },
{ name: 'America/Cambridge_Bay', offset: '07:00' },
{ name: 'America/Campo_Grande', offset: '04:00' },
{ name: 'America/Cancun', offset: '05:00' },
{ name: 'America/Caracas', offset: '04:00' },
{ name: 'America/Cayenne', offset: '03:00' },
{ name: 'America/Chicago', offset: '06:00' },
{ name: 'America/Chihuahua', offset: '07:00' },
{ name: 'America/Costa_Rica', offset: '06:00' },
{ name: 'America/Creston', offset: '07:00' },
{ name: 'America/Cuiaba', offset: '04:00' },
{ name: 'America/Curacao', offset: '04:00' },
{ name: 'America/Danmarkshavn', offset: '+00:00' },
{ name: 'America/Dawson', offset: '08:00' },
{ name: 'America/Dawson_Creek', offset: '07:00' },
{ name: 'America/Denver', offset: '07:00' },
{ name: 'America/Detroit', offset: '05:00' },
{ name: 'America/Edmonton', offset: '07:00' },
{ name: 'America/Eirunepe', offset: '05:00' },
{ name: 'America/El_Salvador', offset: '06:00' },
{ name: 'America/Fort_Nelson', offset: '07:00' },
{ name: 'America/Fortaleza', offset: '03:00' },
{ name: 'America/Glace_Bay', offset: '04:00' },
{ name: 'America/Godthab', offset: '03:00' },
{ name: 'America/Goose_Bay', offset: '04:00' },
{ name: 'America/Grand_Turk', offset: '05:00' },
{ name: 'America/Guatemala', offset: '06:00' },
{ name: 'America/Guayaquil', offset: '05:00' },
{ name: 'America/Guyana', offset: '04:00' },
{ name: 'America/Halifax', offset: '04:00' },
{ name: 'America/Havana', offset: '05:00' },
{ name: 'America/Hermosillo', offset: '07:00' },
{ name: 'America/Indiana/Indianapolis', offset: '05:00' },
{ name: 'America/Indiana/Knox', offset: '06:00' },
{ name: 'America/Indiana/Marengo', offset: '05:00' },
{ name: 'America/Indiana/Petersburg', offset: '05:00' },
{ name: 'America/Indiana/Tell_City', offset: '06:00' },
{ name: 'America/Indiana/Vevay', offset: '05:00' },
{ name: 'America/Indiana/Vincennes', offset: '05:00' },
{ name: 'America/Indiana/Winamac', offset: '05:00' },
{ name: 'America/Inuvik', offset: '07:00' },
{ name: 'America/Iqaluit', offset: '05:00' },
{ name: 'America/Jamaica', offset: '05:00' },
{ name: 'America/Juneau', offset: '09:00' },
{ name: 'America/Kentucky/Louisville', offset: '05:00' },
{ name: 'America/Kentucky/Monticello', offset: '05:00' },
{ name: 'America/La_Paz', offset: '04:00' },
{ name: 'America/Lima', offset: '05:00' },
{ name: 'America/Los_Angeles', offset: '08:00' },
{ name: 'America/Maceio', offset: '03:00' },
{ name: 'America/Managua', offset: '06:00' },
{ name: 'America/Manaus', offset: '04:00' },
{ name: 'America/Martinique', offset: '04:00' },
{ name: 'America/Matamoros', offset: '06:00' },
{ name: 'America/Mazatlan', offset: '07:00' },
{ name: 'America/Menominee', offset: '06:00' },
{ name: 'America/Merida', offset: '06:00' },
{ name: 'America/Metlakatla', offset: '09:00' },
{ name: 'America/Mexico_City', offset: '06:00' },
{ name: 'America/Miquelon', offset: '03:00' },
{ name: 'America/Moncton', offset: '04:00' },
{ name: 'America/Monterrey', offset: '06:00' },
{ name: 'America/Montevideo', offset: '03:00' },
{ name: 'America/Nassau', offset: '05:00' },
{ name: 'America/New_York', offset: '05:00' },
{ name: 'America/Nipigon', offset: '05:00' },
{ name: 'America/Nome', offset: '09:00' },
{ name: 'America/Noronha', offset: '02:00' },
{ name: 'America/North_Dakota/Beulah', offset: '06:00' },
{ name: 'America/North_Dakota/Center', offset: '06:00' },
{ name: 'America/North_Dakota/New_Salem', offset: '06:00' },
{ name: 'America/Ojinaga', offset: '07:00' },
{ name: 'America/Panama', offset: '05:00' },
{ name: 'America/Pangnirtung', offset: '05:00' },
{ name: 'America/Paramaribo', offset: '03:00' },
{ name: 'America/Phoenix', offset: '07:00' },
{ name: 'America/Port_of_Spain', offset: '04:00' },
{ name: 'America/Port-au-Prince', offset: '05:00' },
{ name: 'America/Porto_Velho', offset: '04:00' },
{ name: 'America/Puerto_Rico', offset: '04:00' },
{ name: 'America/Punta_Arenas', offset: '03:00' },
{ name: 'America/Rainy_River', offset: '06:00' },
{ name: 'America/Rankin_Inlet', offset: '06:00' },
{ name: 'America/Recife', offset: '03:00' },
{ name: 'America/Regina', offset: '06:00' },
{ name: 'America/Resolute', offset: '06:00' },
{ name: 'America/Rio_Branco', offset: '05:00' },
{ name: 'America/Santarem', offset: '03:00' },
{ name: 'America/Santiago', offset: '04:00' },
{ name: 'America/Santo_Domingo', offset: '04:00' },
{ name: 'America/Sao_Paulo', offset: '03:00' },
{ name: 'America/Scoresbysund', offset: '01:00' },
{ name: 'America/Sitka', offset: '09:00' },
{ name: 'America/St_Johns', offset: '03:30' },
{ name: 'America/Swift_Current', offset: '06:00' },
{ name: 'America/Tegucigalpa', offset: '06:00' },
{ name: 'America/Thule', offset: '04:00' },
{ name: 'America/Thunder_Bay', offset: '05:00' },
{ name: 'America/Tijuana', offset: '08:00' },
{ name: 'America/Toronto', offset: '05:00' },
{ name: 'America/Vancouver', offset: '08:00' },
{ name: 'America/Whitehorse', offset: '08:00' },
{ name: 'America/Winnipeg', offset: '06:00' },
{ name: 'America/Yakutat', offset: '09:00' },
{ name: 'America/Yellowknife', offset: '07:00' },
{ name: 'Antarctica/Casey', offset: '+11:00' },
{ name: 'Antarctica/Davis', offset: '+07:00' },
{ name: 'Antarctica/DumontDUrville', offset: '+10:00' },
{ name: 'Antarctica/Macquarie', offset: '+11:00' },
{ name: 'Antarctica/Mawson', offset: '+05:00' },
{ name: 'Antarctica/Palmer', offset: '03:00' },
{ name: 'Antarctica/Rothera', offset: '03:00' },
{ name: 'Antarctica/Syowa', offset: '+03:00' },
{ name: 'Antarctica/Troll', offset: '+00:00' },
{ name: 'Antarctica/Vostok', offset: '+06:00' },
{ name: 'Asia/Almaty', offset: '+06:00' },
{ name: 'Asia/Amman', offset: '+02:00' },
{ name: 'Asia/Anadyr', offset: '+12:00' },
{ name: 'Asia/Aqtau', offset: '+05:00' },
{ name: 'Asia/Aqtobe', offset: '+05:00' },
{ name: 'Asia/Ashgabat', offset: '+05:00' },
{ name: 'Asia/Atyrau', offset: '+05:00' },
{ name: 'Asia/Baghdad', offset: '+03:00' },
{ name: 'Asia/Baku', offset: '+04:00' },
{ name: 'Asia/Bangkok', offset: '+07:00' },
{ name: 'Asia/Barnaul', offset: '+07:00' },
{ name: 'Asia/Beirut', offset: '+02:00' },
{ name: 'Asia/Bishkek', offset: '+06:00' },
{ name: 'Asia/Brunei', offset: '+08:00' },
{ name: 'Asia/Chita', offset: '+09:00' },
{ name: 'Asia/Choibalsan', offset: '+08:00' },
{ name: 'Asia/Colombo', offset: '+05:30' },
{ name: 'Asia/Damascus', offset: '+02:00' },
{ name: 'Asia/Dhaka', offset: '+06:00' },
{ name: 'Asia/Dili', offset: '+09:00' },
{ name: 'Asia/Dubai', offset: '+04:00' },
{ name: 'Asia/Dushanbe', offset: '+05:00' },
{ name: 'Asia/Famagusta', offset: '+02:00' },
{ name: 'Asia/Gaza', offset: '+02:00' },
{ name: 'Asia/Hebron', offset: '+02:00' },
{ name: 'Asia/Ho_Chi_Minh', offset: '+07:00' },
{ name: 'Asia/Hong_Kong', offset: '+08:00' },
{ name: 'Asia/Hovd', offset: '+07:00' },
{ name: 'Asia/Irkutsk', offset: '+08:00' },
{ name: 'Asia/Jakarta', offset: '+07:00' },
{ name: 'Asia/Jayapura', offset: '+09:00' },
{ name: 'Asia/Jerusalem', offset: '+02:00' },
{ name: 'Asia/Kabul', offset: '+04:30' },
{ name: 'Asia/Kamchatka', offset: '+12:00' },
{ name: 'Asia/Karachi', offset: '+05:00' },
{ name: 'Asia/Kathmandu', offset: '+05:45' },
{ name: 'Asia/Khandyga', offset: '+09:00' },
{ name: 'Asia/Kolkata', offset: '+05:30' },
{ name: 'Asia/Krasnoyarsk', offset: '+07:00' },
{ name: 'Asia/Kuala_Lumpur', offset: '+08:00' },
{ name: 'Asia/Kuching', offset: '+08:00' },
{ name: 'Asia/Macau', offset: '+08:00' },
{ name: 'Asia/Magadan', offset: '+11:00' },
{ name: 'Asia/Makassar', offset: '+08:00' },
{ name: 'Asia/Manila', offset: '+08:00' },
{ name: 'Asia/Novokuznetsk', offset: '+07:00' },
{ name: 'Asia/Novosibirsk', offset: '+07:00' },
{ name: 'Asia/Omsk', offset: '+06:00' },
{ name: 'Asia/Oral', offset: '+05:00' },
{ name: 'Asia/Pontianak', offset: '+07:00' },
{ name: 'Asia/Pyongyang', offset: '+09:00' },
{ name: 'Asia/Qatar', offset: '+03:00' },
{ name: 'Asia/Qyzylorda', offset: '+05:00' },
{ name: 'Asia/Riyadh', offset: '+03:00' },
{ name: 'Asia/Sakhalin', offset: '+11:00' },
{ name: 'Asia/Samarkand', offset: '+05:00' },
{ name: 'Asia/Seoul', offset: '+09:00' },
{ name: 'Asia/Shanghai', offset: '+08:00' },
{ name: 'Asia/Singapore', offset: '+08:00' },
{ name: 'Asia/Srednekolymsk', offset: '+11:00' },
{ name: 'Asia/Taipei', offset: '+08:00' },
{ name: 'Asia/Tashkent', offset: '+05:00' },
{ name: 'Asia/Tbilisi', offset: '+04:00' },
{ name: 'Asia/Tehran', offset: '+03:30' },
{ name: 'Asia/Thimphu', offset: '+06:00' },
{ name: 'Asia/Tokyo', offset: '+09:00' },
{ name: 'Asia/Tomsk', offset: '+07:00' },
{ name: 'Asia/Ulaanbaatar', offset: '+08:00' },
{ name: 'Asia/Urumqi', offset: '+06:00' },
{ name: 'Asia/Ust-Nera', offset: '+10:00' },
{ name: 'Asia/Vladivostok', offset: '+10:00' },
{ name: 'Asia/Yakutsk', offset: '+09:00' },
{ name: 'Asia/Yangon', offset: '+06:30' },
{ name: 'Asia/Yekaterinburg', offset: '+05:00' },
{ name: 'Asia/Yerevan', offset: '+04:00' },
{ name: 'Atlantic/Azores', offset: '01:00' },
{ name: 'Atlantic/Bermuda', offset: '04:00' },
{ name: 'Atlantic/Canary', offset: '+00:00' },
{ name: 'Atlantic/Cape_Verde', offset: '01:00' },
{ name: 'Atlantic/Faroe', offset: '+00:00' },
{ name: 'Atlantic/Madeira', offset: '+00:00' },
{ name: 'Atlantic/Reykjavik', offset: '+00:00' },
{ name: 'Atlantic/South_Georgia', offset: '02:00' },
{ name: 'Atlantic/Stanley', offset: '03:00' },
{ name: 'Australia/Adelaide', offset: '+09:30' },
{ name: 'Australia/Brisbane', offset: '+10:00' },
{ name: 'Australia/Broken_Hill', offset: '+09:30' },
{ name: 'Australia/Currie', offset: '+10:00' },
{ name: 'Australia/Darwin', offset: '+09:30' },
{ name: 'Australia/Eucla', offset: '+08:45' },
{ name: 'Australia/Hobart', offset: '+10:00' },
{ name: 'Australia/Lindeman', offset: '+10:00' },
{ name: 'Australia/Lord_Howe', offset: '+10:30' },
{ name: 'Australia/Melbourne', offset: '+10:00' },
{ name: 'Australia/Perth', offset: '+08:00' },
{ name: 'Australia/Sydney', offset: '+10:00' },
{ name: 'Europe/Amsterdam', offset: '+01:00' },
{ name: 'Europe/Andorra', offset: '+01:00' },
{ name: 'Europe/Astrakhan', offset: '+04:00' },
{ name: 'Europe/Athens', offset: '+02:00' },
{ name: 'Europe/Belgrade', offset: '+01:00' },
{ name: 'Europe/Berlin', offset: '+01:00' },
{ name: 'Europe/Brussels', offset: '+01:00' },
{ name: 'Europe/Bucharest', offset: '+02:00' },
{ name: 'Europe/Budapest', offset: '+01:00' },
{ name: 'Europe/Chisinau', offset: '+02:00' },
{ name: 'Europe/Copenhagen', offset: '+01:00' },
{ name: 'Europe/Dublin', offset: '+00:00' },
{ name: 'Europe/Gibraltar', offset: '+01:00' },
{ name: 'Europe/Helsinki', offset: '+02:00' },
{ name: 'Europe/Istanbul', offset: '+03:00' },
{ name: 'Europe/Kaliningrad', offset: '+02:00' },
{ name: 'Europe/Kiev', offset: '+02:00' },
{ name: 'Europe/Kirov', offset: '+03:00' },
{ name: 'Europe/Lisbon', offset: '+00:00' },
{ name: 'Europe/London', offset: '+00:00' },
{ name: 'Europe/Luxembourg', offset: '+01:00' },
{ name: 'Europe/Madrid', offset: '+01:00' },
{ name: 'Europe/Malta', offset: '+01:00' },
{ name: 'Europe/Minsk', offset: '+03:00' },
{ name: 'Europe/Monaco', offset: '+01:00' },
{ name: 'Europe/Moscow', offset: '+03:00' },
{ name: 'Asia/Nicosia', offset: '+02:00' },
{ name: 'Europe/Oslo', offset: '+01:00' },
{ name: 'Europe/Paris', offset: '+01:00' },
{ name: 'Europe/Prague', offset: '+01:00' },
{ name: 'Europe/Riga', offset: '+02:00' },
{ name: 'Europe/Rome', offset: '+01:00' },
{ name: 'Europe/Samara', offset: '+04:00' },
{ name: 'Europe/Saratov', offset: '+04:00' },
{ name: 'Europe/Simferopol', offset: '+03:00' },
{ name: 'Europe/Sofia', offset: '+02:00' },
{ name: 'Europe/Stockholm', offset: '+01:00' },
{ name: 'Europe/Tallinn', offset: '+02:00' },
{ name: 'Europe/Tirane', offset: '+01:00' },
{ name: 'Europe/Ulyanovsk', offset: '+04:00' },
{ name: 'Europe/Uzhgorod', offset: '+02:00' },
{ name: 'Europe/Vienna', offset: '+01:00' },
{ name: 'Europe/Vilnius', offset: '+02:00' },
{ name: 'Europe/Volgograd', offset: '+04:00' },
{ name: 'Europe/Warsaw', offset: '+01:00' },
{ name: 'Europe/Zaporozhye', offset: '+02:00' },
{ name: 'Europe/Zurich', offset: '+01:00' },
{ name: 'Indian/Chagos', offset: '+06:00' },
{ name: 'Indian/Christmas', offset: '+07:00' },
{ name: 'Indian/Cocos', offset: '+06:30' },
{ name: 'Indian/Kerguelen', offset: '+05:00' },
{ name: 'Indian/Mahe', offset: '+04:00' },
{ name: 'Indian/Maldives', offset: '+05:00' },
{ name: 'Indian/Mauritius', offset: '+04:00' },
{ name: 'Indian/Reunion', offset: '+04:00' },
{ name: 'Pacific/Apia', offset: '+13:00' },
{ name: 'Pacific/Auckland', offset: '+12:00' },
{ name: 'Pacific/Bougainville', offset: '+11:00' },
{ name: 'Pacific/Chatham', offset: '+12:45' },
{ name: 'Pacific/Chuuk', offset: '+10:00' },
{ name: 'Pacific/Easter', offset: '06:00' },
{ name: 'Pacific/Efate', offset: '+11:00' },
{ name: 'Pacific/Enderbury', offset: '+13:00' },
{ name: 'Pacific/Fakaofo', offset: '+13:00' },
{ name: 'Pacific/Fiji', offset: '+12:00' },
{ name: 'Pacific/Funafuti', offset: '+12:00' },
{ name: 'Pacific/Galapagos', offset: '06:00' },
{ name: 'Pacific/Gambier', offset: '09:00' },
{ name: 'Pacific/Guadalcanal', offset: '+11:00' },
{ name: 'Pacific/Guam', offset: '+10:00' },
{ name: 'Pacific/Honolulu', offset: '10:00' },
{ name: 'Pacific/Kiritimati', offset: '+14:00' },
{ name: 'Pacific/Kosrae', offset: '+11:00' },
{ name: 'Pacific/Kwajalein', offset: '+12:00' },
{ name: 'Pacific/Majuro', offset: '+12:00' },
{ name: 'Pacific/Marquesas', offset: '09:30' },
{ name: 'Pacific/Nauru', offset: '+12:00' },
{ name: 'Pacific/Niue', offset: '11:00' },
{ name: 'Pacific/Norfolk', offset: '+11:00' },
{ name: 'Pacific/Noumea', offset: '+11:00' },
{ name: 'Pacific/Pago_Pago', offset: '11:00' },
{ name: 'Pacific/Palau', offset: '+09:00' },
{ name: 'Pacific/Pitcairn', offset: '08:00' },
{ name: 'Pacific/Pohnpei', offset: '+11:00' },
{ name: 'Pacific/Port_Moresby', offset: '+10:00' },
{ name: 'Pacific/Rarotonga', offset: '10:00' },
{ name: 'Pacific/Tahiti', offset: '10:00' },
{ name: 'Pacific/Tarawa', offset: '+12:00' },
{ name: 'Pacific/Tongatapu', offset: '+13:00' },
{ name: 'Pacific/Wake', offset: '+12:00' },
{ name: 'Pacific/Wallis', offset: '+12:00' },
];
var timezones = ubuntuTimezones.map(function (t) {
var detail = details.find(function (d) {
return d.name === t;
});
if (!detail) return null;
return {
id: t,
display: `${t} (UTC${detail.offset})`
}
}).filter(function (t) { return !!t; });
var output = `(function () { window.timezones = ${JSON.stringify(timezones)}; })();\n`;
fs.writeFileSync(destinationFilePath, output, 'utf-8');
console.log('Done');
+69
View File
@@ -0,0 +1,69 @@
#!/usr/bin/env node
// This script deletes many users to test the UI for such a case
// WARNING keep those in sync with addUsers.js
const USERNAME_PREFIX = 'manyuser';
var async = require('async'),
readlineSync = require('readline-sync'),
superagent = require('superagent');
if (process.argv.length !== 3) {
console.log('Usage: ./delUsers.js <cloudronDomain>');
process.exit(1);
}
const cloudronDomain = process.argv[2];
function getAccessToken(callback) {
let username = readlineSync.question('Username: ', {});
let password = readlineSync.question('Password: ', { noEchoBack: true });
superagent.post(`https://${cloudronDomain}/api/v1/auth/login`, { username: username, password: password }).end(function (error, result) {
if (error || result.statusCode !== 200) {
console.log('Login failed');
return getAccessToken(callback);
}
callback(result.body.accessToken);
});
}
console.log(`Login to ${cloudronDomain}`);
getAccessToken(function (accessToken) {
console.log('Listing users...');
superagent.get(`https://${cloudronDomain}/api/v1/users`).query({ access_token: accessToken, per_page: 1000 }).end(function (error, result) {
if (error) {
console.error(error);
process.exit(1);
}
console.log(`Found ${result.body.users.length} users`);
let matchingUsers = result.body.users.filter(function (u) { return u.username.indexOf(USERNAME_PREFIX) === 0; });
console.log(`Found ${matchingUsers.length} users with matching prefix`);
console.log('Deleting users...');
async.eachLimit(matchingUsers, 5, function (user, next) {
superagent.del(`https://${cloudronDomain}/api/v1/users/${user.id}`).query({ access_token: accessToken }).end(function (error) {
if (error) return next(error);
process.stdout.write('.');
next();
});
}, function (error) {
console.log();
if (error) {
console.error(error);
process.exit(1);
}
console.log('Done');
});
});
});
+163
View File
@@ -0,0 +1,163 @@
{
"name": "scripts",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"async": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz",
"integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ=="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
"integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"cookiejar": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
"integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA=="
},
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": {
"ms": "^2.1.1"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"fast-safe-stringify": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
"integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="
},
"form-data": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
"integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
},
"formidable": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
"integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg=="
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"mime": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
"integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA=="
},
"mime-db": {
"version": "1.40.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
},
"mime-types": {
"version": "2.1.24",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
"requires": {
"mime-db": "1.40.0"
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"qs": {
"version": "6.9.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.0.tgz",
"integrity": "sha512-27RP4UotQORTpmNQDX8BHPukOnBP3p1uUJY5UnDhaJB+rMt9iMsok724XL+UHU23bEFOHRMQ2ZhI99qOWUMGFA=="
},
"readable-stream": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
"integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"readline-sync": {
"version": "1.4.10",
"resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz",
"integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw=="
},
"safe-buffer": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
"integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
},
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
}
},
"superagent": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-5.1.0.tgz",
"integrity": "sha512-7V6JVx5N+eTL1MMqRBX0v0bG04UjrjAvvZJTF/VDH/SH2GjSLqlrcYepFlpTrXpm37aSY6h3GGVWGxXl/98TKA==",
"requires": {
"component-emitter": "^1.3.0",
"cookiejar": "^2.1.2",
"debug": "^4.1.1",
"fast-safe-stringify": "^2.0.6",
"form-data": "^2.3.3",
"formidable": "^1.2.1",
"methods": "^1.1.2",
"mime": "^2.4.4",
"qs": "^6.7.0",
"readable-stream": "^3.4.0",
"semver": "^6.1.1"
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
}
}
}
+16
View File
@@ -0,0 +1,16 @@
{
"name": "scripts",
"version": "1.0.0",
"description": "",
"main": "manyUsers.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"async": "^3.1.0",
"readline-sync": "^1.4.10",
"superagent": "^5.1.0"
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

+85
View File
@@ -0,0 +1,85 @@
/**
* angular-ui-notification - Angular.js service providing simple notifications using Bootstrap 3 styles with css transitions for animating
* @author Alex_Crack
* @version v0.3.6
* @link https://github.com/alexcrack/angular-ui-notification
* @license MIT
*/
.ui-notification
{
position: fixed;
z-index: 9999;
width: 300px;
-webkit-transition: all ease .5s;
-o-transition: all ease .5s;
transition: all ease .5s;
color: #fff;
border-radius: 0;
background: #337ab7;
box-shadow: 5px 5px 10px rgba(0, 0, 0, .3);
}
.ui-notification.clickable
{
cursor: pointer;
}
.ui-notification.clickable:hover
{
opacity: .7;
}
.ui-notification.killed
{
-webkit-transition: opacity ease 1s;
-o-transition: opacity ease 1s;
transition: opacity ease 1s;
opacity: 0;
}
.ui-notification > h3
{
font-size: 14px;
font-weight: bold;
display: block;
margin: 10px 10px 0 10px;
padding: 0 0 5px 0;
text-align: left;
border-bottom: 1px solid rgba(255, 255, 255, .3);
}
.ui-notification a
{
color: #fff;
}
.ui-notification a:hover
{
text-decoration: underline;
}
.ui-notification > .message
{
margin: 10px 10px 10px 10px;
}
.ui-notification.warning
{
color: #fff;
background: #f0ad4e;
}
.ui-notification.error
{
color: #fff;
background: #d9534f;
}
.ui-notification.success
{
color: #fff;
background: #5cb85c;
}
.ui-notification.info
{
color: #fff;
background: #5bc0de;
}

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

@@ -1,5 +1,12 @@
"use strict";
// -------------------------------
// WARNING
// -------------------------------
// This file is taken from https://github.com/sebastianha/angular-bootstrap-multiselect
// There are local modifications like support for translation
// -------------------------------
angular.module("ui.multiselect", ["multiselect.tpl.html"])
//from bootstrap-ui typeahead parser
.factory("optionParser", ["$parse", function($parse) {
@@ -23,7 +30,7 @@ angular.module("ui.multiselect", ["multiselect.tpl.html"])
}
};
}])
.directive("multiselect", ["$parse", "$document", "$compile", "$interpolate", "optionParser", function($parse, $document, $compile, $interpolate, optionParser) {
.directive("multiselect", ["$parse", "$document", "$compile", "$interpolate", "$translate", "optionParser", function($parse, $document, $compile, $interpolate, $translate, optionParser) {
return {
restrict: "E",
require : "ngModel",
@@ -154,7 +161,7 @@ angular.module("ui.multiselect", ["multiselect.tpl.html"])
function getHeaderText() {
if(isEmpty(modelCtrl.$modelValue)) {
scope.header = attrs.msHeader || "Select";
scope.header = attrs.msHeader || $translate.instant('main.multiselect.select');
return scope.header;
}
@@ -162,7 +169,7 @@ angular.module("ui.multiselect", ["multiselect.tpl.html"])
if(attrs.msSelected) {
scope.header = $interpolate(attrs.msSelected)(scope);
} else {
scope.header = modelCtrl.$modelValue.length + " " + "selected";
scope.header = $translate.instant('main.multiselect.selected', { n: modelCtrl.$modelValue.length });
}
} else {
var local = {};
@@ -342,7 +349,7 @@ angular.module("multiselect.tpl.html", []).run(["$templateCache", function($temp
" <div ng-style=\"maxWidth\" style=\"padding-right: 13px; overflow: hidden; text-overflow: ellipsis;\">{{header}}</div><span class=\"caret\" style=\"position:absolute;right:10px;top:14px;\"></span>\n" +
" </button>\n" +
" <ul class=\"dropdown-menu\" style=\"margin-bottom:30px;padding-left:5px;padding-right:5px;\" ng-style=\"ulStyle\">\n" +
" <input ng-show=\"items.length > filterAfterRows\" ng-model=\"filter\" style=\"padding: 0px 3px;margin-right: 15px; margin-bottom: 4px;\" placeholder=\"Type to filter options\">" +
" <input ng-show=\"items.length > filterAfterRows\" ng-model=\"filter\" style=\"padding: 0px 3px; margin-bottom: 4px;\" placeholder=\"{{ 'main.multiselect.filterPlaceholder' | tr }}\">" +
" <li data-stopPropagation=\"true\" ng-repeat=\"i in items | filter:filter\" ng-class=\"{'dropdown-header': i.header, 'divider': i.divider}\">\n" +
" <a ng-if=\"!i.header && !i.divider\" ng-click=\"select($event, i)\" style=\"padding:3px 10px;cursor:pointer;\">\n" +
" <i class=\"fa\" ng-class=\"{'fa-check': i.checked, 'empty': !i.checked}\"></i> {{i.label}}" +
+9
View File
@@ -0,0 +1,9 @@
/*
AngularJS v1.5.8
(c) 2010-2016 Google, Inc. http://angularjs.org
License: MIT
*/
(function(n,c){'use strict';function l(b,a,g){var d=g.baseHref(),k=b[0];return function(b,e,f){var g,h;f=f||{};h=f.expires;g=c.isDefined(f.path)?f.path:d;c.isUndefined(e)&&(h="Thu, 01 Jan 1970 00:00:00 GMT",e="");c.isString(h)&&(h=new Date(h));e=encodeURIComponent(b)+"="+encodeURIComponent(e);e=e+(g?";path="+g:"")+(f.domain?";domain="+f.domain:"");e+=h?";expires="+h.toUTCString():"";e+=f.secure?";secure":"";f=e.length+1;4096<f&&a.warn("Cookie '"+b+"' possibly not set or overflowed because it was too large ("+
f+" > 4096 bytes)!");k.cookie=e}}c.module("ngCookies",["ng"]).provider("$cookies",[function(){var b=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(a,g){return{get:function(d){return a()[d]},getObject:function(d){return(d=this.get(d))?c.fromJson(d):d},getAll:function(){return a()},put:function(d,a,m){g(d,a,m?c.extend({},b,m):b)},putObject:function(d,b,a){this.put(d,c.toJson(b),a)},remove:function(a,k){g(a,void 0,k?c.extend({},b,k):b)}}}]}]);c.module("ngCookies").factory("$cookieStore",
["$cookies",function(b){return{get:function(a){return b.getObject(a)},put:function(a,c){b.putObject(a,c)},remove:function(a){b.remove(a)}}}]);l.$inject=["$document","$log","$browser"];c.module("ngCookies").provider("$$cookieWriter",function(){this.$get=l})})(window,window.angular);
//# sourceMappingURL=angular-cookies.min.js.map
@@ -0,0 +1,6 @@
/*!
* angular-translate - v2.18.3 - 2020-07-08
*
* Copyright (c) 2020 The angular-translate team, Pascal Precht; Licensed MIT
*/
!function(e,i){"function"==typeof define&&define.amd?define([],function(){return i()}):"object"==typeof module&&module.exports?module.exports=i():i()}(0,function(){function e(n,a){"use strict";return function(r){if(!(r&&(angular.isArray(r.files)||angular.isString(r.prefix)&&angular.isString(r.suffix))))throw new Error("Couldn't load static files, no files and prefix or suffix specified!");r.files||(r.files=[{prefix:r.prefix,suffix:r.suffix}]);for(var e=function(e){if(!e||!angular.isString(e.prefix)||!angular.isString(e.suffix))throw new Error("Couldn't load static file, no prefix or suffix specified!");var i=[e.prefix,r.key,e.suffix].join("");return angular.isObject(r.fileMap)&&r.fileMap[i]&&(i=r.fileMap[i]),a(angular.extend({url:i,method:"GET"},r.$http)).then(function(e){return e.data},function(){return n.reject(r.key)})},i=[],t=r.files.length,f=0;f<t;f++)i.push(e({prefix:r.files[f].prefix,key:r.key,suffix:r.files[f].suffix}));return n.all(i).then(function(e){for(var i=e.length,r={},t=0;t<i;t++)for(var f in e[t])r[f]=e[t][f];return r})}}return e.$inject=["$q","$http"],angular.module("pascalprecht.translate").factory("$translateStaticFilesLoader",e),e.displayName="$translateStaticFilesLoader","pascalprecht.translate"});
@@ -0,0 +1,6 @@
/*!
* angular-translate - v2.18.3 - 2020-07-08
*
* Copyright (c) 2020 The angular-translate team, Pascal Precht; Licensed MIT
*/
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(t){"use strict";var n;if(1===angular.version.major&&4<=angular.version.minor){var o=t.get("$cookies");n={get:function(t){return o.get(t)},put:function(t,e){o.put(t,e)}}}else{var r=t.get("$cookieStore");n={get:function(t){return r.get(t)},put:function(t,e){r.put(t,e)}}}return{get:function(t){return n.get(t)},set:function(t,e){n.put(t,e)},put:function(t,e){n.put(t,e)}}}return t.$inject=["$injector"],angular.module("pascalprecht.translate").factory("$translateCookieStorage",t),t.displayName="$translateCookieStorage","pascalprecht.translate"});
@@ -0,0 +1,6 @@
/*!
* angular-translate - v2.18.3 - 2020-07-08
*
* Copyright (c) 2020 The angular-translate team, Pascal Precht; Licensed MIT
*/
!function(t,e){"function"==typeof define&&define.amd?define([],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():e()}(0,function(){function t(a,t){"use strict";var o,e={get:function(t){return o||(o=a.localStorage.getItem(t)),o},set:function(t,e){o=e,a.localStorage.setItem(t,e)},put:function(t,e){o=e,a.localStorage.setItem(t,e)}},r="localStorage"in a;if(r){var n="pascalprecht.translate.storageTest";try{r=null!==a.localStorage&&(a.localStorage.setItem(n,"foo"),a.localStorage.removeItem(n),!0)}catch(t){r=!1}}return r?e:t}return t.$inject=["$window","$translateCookieStorage"],angular.module("pascalprecht.translate").factory("$translateLocalStorage",t),t.displayName="$translateLocalStorageFactory","pascalprecht.translate"});
File diff suppressed because one or more lines are too long
+271
View File
@@ -0,0 +1,271 @@
/**
* angular-ui-notification - Angular.js service providing simple notifications using Bootstrap 3 styles with css transitions for animating
* @author Alex_Crack
* @version v0.3.6
* @link https://github.com/alexcrack/angular-ui-notification
* @license MIT
*/
angular.module('ui-notification', []);
angular.module('ui-notification').provider('Notification', function () {
this.options = {
delay: 5000,
startTop: 10,
startRight: 10,
verticalSpacing: 10,
horizontalSpacing: 10,
positionX: 'right',
positionY: 'top',
replaceMessage: false,
templateUrl: 'angular-ui-notification.html',
onClose: undefined,
onClick: undefined,
closeOnClick: true,
maxCount: 0, // 0 - Infinite
container: 'body',
priority: 10
};
this.setOptions = function (options) {
if (!angular.isObject(options)) throw new Error("Options should be an object!");
this.options = angular.extend({}, this.options, options);
};
this.$get = ["$timeout", "$http", "$compile", "$templateCache", "$rootScope", "$injector", "$sce", "$q", "$window", function ($timeout, $http, $compile, $templateCache, $rootScope, $injector, $sce, $q, $window) {
var options = this.options;
var startTop = options.startTop;
var startRight = options.startRight;
var verticalSpacing = options.verticalSpacing;
var horizontalSpacing = options.horizontalSpacing;
var delay = options.delay;
var messageElements = [];
var isResizeBound = false;
var notify = function (args, t) {
var deferred = $q.defer();
if (typeof args !== 'object' || args === null) {
args = {message: args};
}
args.scope = args.scope ? args.scope : $rootScope;
args.template = args.templateUrl ? args.templateUrl : options.templateUrl;
args.delay = !angular.isUndefined(args.delay) ? args.delay : delay;
args.type = t || args.type || options.type || '';
args.positionY = args.positionY ? args.positionY : options.positionY;
args.positionX = args.positionX ? args.positionX : options.positionX;
args.replaceMessage = args.replaceMessage ? args.replaceMessage : options.replaceMessage;
args.onClose = args.onClose ? args.onClose : options.onClose;
args.onClick = args.onClick ? args.onClick : options.onClick;
args.closeOnClick = (args.closeOnClick !== null && args.closeOnClick !== undefined) ? args.closeOnClick : options.closeOnClick;
args.container = args.container ? args.container : options.container;
args.priority = args.priority ? args.priority : options.priority;
var template = $templateCache.get(args.template);
if (template) {
processNotificationTemplate(template);
} else {
// load it via $http only if it isn't default template and template isn't exist in template cache
// cache:true means cache it for later access.
$http.get(args.template, {cache: true})
.then(function (response) {
processNotificationTemplate(response.data);
})
.catch(function (data) {
throw new Error('Template (' + args.template + ') could not be loaded. ' + data);
});
}
function processNotificationTemplate(template) {
var scope = args.scope.$new();
scope.message = $sce.trustAsHtml(args.message);
scope.title = $sce.trustAsHtml(args.title);
scope.t = args.type.substr(0, 1);
scope.delay = args.delay;
scope.onClose = args.onClose;
scope.onClick = args.onClick;
var priorityCompareTop = function (a, b) {
return a._priority - b._priority;
};
var priorityCompareBtm = function (a, b) {
return b._priority - a._priority;
};
var reposite = function () {
var j = 0;
var k = 0;
var lastTop = startTop;
var lastRight = startRight;
var lastPosition = [];
if (args.positionY === 'top') {
messageElements.sort(priorityCompareTop);
} else if (args.positionY === 'bottom') {
messageElements.sort(priorityCompareBtm);
}
for (var i = messageElements.length - 1; i >= 0; i--) {
var element = messageElements[i];
if (args.replaceMessage && i < messageElements.length - 1) {
element.addClass('killed');
continue;
}
var elHeight = parseInt(element[0].offsetHeight);
var elWidth = parseInt(element[0].offsetWidth);
var position = lastPosition[element._positionY + element._positionX];
if ((top + elHeight) > window.innerHeight) {
position = startTop;
k++;
j = 0;
}
var top = (lastTop = position ? (j === 0 ? position : position + verticalSpacing) : startTop);
var right = lastRight + (k * (horizontalSpacing + elWidth));
element.css(element._positionY, top + 'px');
if (element._positionX === 'center') {
element.css('left', parseInt(window.innerWidth / 2 - elWidth / 2) + 'px');
} else {
element.css(element._positionX, right + 'px');
}
lastPosition[element._positionY + element._positionX] = top + elHeight;
if (options.maxCount > 0 && messageElements.length > options.maxCount && i === 0) {
element.scope().kill(true);
}
j++;
}
};
var templateElement = $compile(template)(scope);
templateElement._positionY = args.positionY;
templateElement._positionX = args.positionX;
templateElement._priority = args.priority;
templateElement.addClass(args.type);
var closeEvent = function (e) {
e = e.originalEvent || e;
if (e.type === 'click' || e.propertyName === 'opacity' && e.elapsedTime >= 1) {
if (scope.onClose) {
scope.$apply(scope.onClose(templateElement));
}
if (e.type === 'click')
if (scope.onClick) {
scope.$apply(scope.onClick(templateElement));
}
templateElement.remove();
messageElements.splice(messageElements.indexOf(templateElement), 1);
scope.$destroy();
reposite();
}
};
if (args.closeOnClick) {
templateElement.addClass('clickable');
templateElement.bind('click', closeEvent);
}
templateElement.bind('webkitTransitionEnd oTransitionEnd otransitionend transitionend msTransitionEnd', closeEvent);
if (angular.isNumber(args.delay)) {
$timeout(function () {
templateElement.addClass('killed');
}, args.delay);
}
setCssTransitions('none');
angular.element(document.querySelector(args.container)).append(templateElement);
var offset = -(parseInt(templateElement[0].offsetHeight) + 50);
templateElement.css(templateElement._positionY, offset + "px");
messageElements.push(templateElement);
if (args.positionX == 'center') {
var elWidth = parseInt(templateElement[0].offsetWidth);
templateElement.css('left', parseInt(window.innerWidth / 2 - elWidth / 2) + 'px');
}
$timeout(function () {
setCssTransitions('');
});
function setCssTransitions(value) {
['-webkit-transition', '-o-transition', 'transition'].forEach(function (prefix) {
templateElement.css(prefix, value);
});
}
scope._templateElement = templateElement;
scope.kill = function (isHard) {
if (isHard) {
if (scope.onClose) {
scope.$apply(scope.onClose(scope._templateElement));
}
messageElements.splice(messageElements.indexOf(scope._templateElement), 1);
scope._templateElement.remove();
scope.$destroy();
$timeout(reposite);
} else {
scope._templateElement.addClass('killed');
}
};
$timeout(reposite);
if (!isResizeBound) {
angular.element($window).bind('resize', function (e) {
$timeout(reposite);
});
isResizeBound = true;
}
deferred.resolve(scope);
}
return deferred.promise;
};
notify.primary = function (args) {
return this(args, 'primary');
};
notify.error = function (args) {
return this(args, 'error');
};
notify.success = function (args) {
return this(args, 'success');
};
notify.info = function (args) {
return this(args, 'info');
};
notify.warning = function (args) {
return this(args, 'warning');
};
notify.clearAll = function () {
angular.forEach(messageElements, function (element) {
element.addClass('killed');
});
};
return notify;
}];
});
angular.module("ui-notification").run(["$templateCache", function($templateCache) {$templateCache.put("angular-ui-notification.html","<div class=\"ui-notification\"><h3 ng-show=\"title\" ng-bind-html=\"title\"></h3><div class=\"message\" ng-bind-html=\"message\"></div></div>");}]);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+32
View File
@@ -0,0 +1,32 @@
// Custom library to add password show/hide icons to input element with `password-reveal` attribute
// util.js has the angular version, this is for plain js
window.addEventListener('load', function () {
var svgEye = '<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="eye" class="svg-inline--fa fa-eye fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"></path></svg>';
var svgEyeSlash = '<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="eye-slash" class="svg-inline--fa fa-eye-slash fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><path fill="currentColor" d="M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"></path></svg>';
document.querySelectorAll('[password-reveal]').forEach(function (element) {
var eye = document.createElement('i');
eye.innerHTML = svgEyeSlash;
eye.style.width = '18px';
eye.style.height = '18px';
eye.style.position = 'relative';
eye.style.float = 'right';
eye.style.marginTop = '-24px';
eye.style.marginRight = '10px';
eye.style.cursor = 'pointer';
eye.addEventListener('click', function () {
if (element.type === 'password') {
element.type = 'text';
eye.innerHTML = svgEye;
} else {
element.type = 'password';
eye.innerHTML = svgEyeSlash;
}
});
element.parentNode.style.position = 'relative';
element.parentNode.insertBefore(eye, element.nextSibling);
});
});
File diff suppressed because one or more lines are too long
@@ -4,7 +4,8 @@
<meta charset="utf-8" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
<title> Cloudron App Error </title>
<title>Cloudron App Error</title>
<meta name="description" content="Cloudron App Error">
<!-- Use static style as we can't include local stylesheets -->
<style>
@@ -22,6 +23,8 @@
height: 100%;
width: 100%;
text-align: center;
font-family: Roboto, Helvetica, Arial, sans-serif;
line-height: 1.846;
}
.content {
@@ -37,38 +40,43 @@
bottom: 0;
width: 100%;
color: #555;
font-size: 14px;
font-size: 12px;
text-align: center;
padding: 5px;
z-index: 1000;
position: fixed;
opacity: .5;
transition: all .25s;
}
footer a {
color: #62bdfc;
padding: 10px;
footer:hover {
opacity: 1;
}
a {
color: #2196f3;
text-decoration: none;
background-color: transparent;
}
h1, h2, p {
margin: 10px;
a:hover {
color: #0a6ebd;
text-decoration: underline;
}
</style>
</style>
</head>
<body>
<div class="content">
<h1>&#128577;</h1>
<h2>Something has gone wrong</h2>
<p>This app is currently not responding. Try refreshing the page.</p>
<h1>&#x231B;</h1>
<p>This app is currently not responding. Please try refreshing the page in a few minutes.</p>
</div>
<footer class="text-center">
<footer>
<span class="text-muted"><a href="https://cloudron.io" target="_blank">Cloudron</a></span>
<span class="text-muted"><a href="https://twitter.com/cloudron_io" target="_blank">Twitter</a></span>
<span class="text-muted"><a href="https://chat.cloudron.io" target="_blank">Chat <i class="fa fa-comments"></i></a></span>
</footer>
</body>
+11
View File
@@ -0,0 +1,11 @@
<script>
var tmp = window.location.hash.slice(1).split('&');
tmp.forEach(function (pair) {
if (pair.indexOf('access_token=') === 0) localStorage.token = pair.split('=')[1];
});
window.location.href = '/';
</script>
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

+102
View File
@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="546.13336"
height="546.13336"
viewBox="0 0 512.00001 512.00001"
id="svg4519"
version="1.1"
inkscape:version="0.92.2 2405546, 2018-03-11"
sodipodi:docname="appicon_fallback.svg"
inkscape:export-filename="/home/nebulon/projects/yellowtent/dashboard/src/img/appicon_fallback.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90">
<defs
id="defs4521" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.7"
inkscape:cx="89.894291"
inkscape:cy="162.5294"
inkscape:document-units="px"
inkscape:current-layer="g4496"
showgrid="false"
units="px"
inkscape:window-width="2880"
inkscape:window-height="1565"
inkscape:window-x="0"
inkscape:window-y="55"
inkscape:window-maximized="1" />
<metadata
id="metadata4524">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-540.36216)">
<g
id="g4467"
transform="matrix(20.50952,0,0,20.859456,-526.58031,-94.042799)">
<g
inkscape:export-ydpi="67.349998"
inkscape:export-xdpi="67.349998"
transform="matrix(0.59473169,0,0,0.59473169,31.04719,102.48374)"
id="g4382">
<g
id="g4496">
<path
sodipodi:type="star"
style="opacity:1;fill:#03a9f4;fill-opacity:1;stroke:none;stroke-width:1.10000002;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path4162"
sodipodi:sides="6"
sodipodi:cx="12.46875"
sodipodi:cy="-99.893143"
sodipodi:r1="19.266006"
sodipodi:r2="16.307295"
sodipodi:arg1="-0.52224059"
sodipodi:arg2="0.0013581913"
inkscape:flatsided="true"
inkscape:rounded="0.12490573"
inkscape:randomized="0"
d="m 29.166669,-109.50348 c 1.200386,2.08567 1.17988,17.183595 -0.02617,19.265993 -1.206046,2.082397 -14.291486,9.613601 -16.697919,9.610333 -2.406432,-0.0033 -15.4713664,-7.56999 -16.671752,-9.655655 -1.2003857,-2.085666 -1.1798799,-17.183591 0.026167,-19.265991 1.2060467,-2.0824 14.2914862,-9.6136 16.6979192,-9.61033 2.406432,0.003 15.471366,7.56999 16.671752,9.65565 z"
transform="rotate(-30,10.993604,-99.259973)"
inkscape:export-xdpi="67.349998"
inkscape:export-ydpi="67.349998" />
<rect
inkscape:transform-center-x="0.66390665"
ry="3.9522502"
y="-107.69034"
x="4.8100815"
height="14.288903"
width="14.288903"
id="rect4168-1-1"
style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.75875854;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
inkscape:transform-center-y="3.7035412e-06" />
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.91 r13725"
version="1.0"
sodipodi:docname="avatar-default-symbolic.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#e7e7e7"
borderopacity="1"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.964497"
inkscape:cx="6.5536056"
inkscape:cy="-0.025360958"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:showpageshadow="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1030"
inkscape:window-x="0"
inkscape:window-y="25"
inkscape:window-maximized="1"
inkscape:snap-global="true">
<sodipodi:guide
orientation="1,0"
position="0,112"
id="guide2383" />
<sodipodi:guide
orientation="0,1"
position="78.156291,0"
id="guide2389" />
<inkscape:grid
type="xygrid"
id="grid3672"
visible="true"
enabled="true" />
<sodipodi:guide
orientation="1,0"
position="22.008699,4.1542523"
id="guide2950" />
<sodipodi:guide
orientation="0,1"
position="11.22532,22.008699"
id="guide2952" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1">
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccsccccc"
style="fill:#000000;fill-opacity:1;stroke:none"
id="path3935"
d="m -13.771529,5.9050966 c 0.181174,0.8569201 0.2823,1.5051186 0.135325,2.3620387 -1.145861,0.9506717 -4.076448,1.3778558 -4.072056,2.3620387 l -0.393673,2.558875 c 0,0.978388 2.731928,1.771529 6.101933,1.771529 3.370005,0 6.101933,-0.793141 6.101933,-1.771529 L -6.29174,10.629174 c -0.0047,-0.8423279 -2.952548,-1.377856 -4.084358,-2.3620387 -0.09668,-0.7953524 -0.01972,-1.5666863 0.147627,-2.3620387 l -3.543058,0 z" />
<path
transform="matrix(0.34209356,0,0,0.34209356,-8.638748,-12.26548)"
d="m -9.75,73.09375 c -3.766412,0.121068 -7.468069,1.386362 -11.40625,3.25 a 1.25331,1.25331 0 0 0 -0.6875,1.4375 l 0.625,2.53125 a 1.25331,1.25331 0 0 0 0.78125,0.84375 c 0.161757,0.06256 0.275429,0.183794 0.71875,0.3125 2.335298,0.677989 5.907957,1.15625 9.90625,1.15625 3.9982931,0 7.5709518,-0.478261 9.90625,-1.15625 0.44332111,-0.128707 0.55699247,-0.24994 0.71875,-0.3125 a 1.25331,1.25331 0 0 0 0.78125,-0.8125 L 2.25,78.03125 a 1.25331,1.25331 0 0 0 -0.53125,-1.375 C -2.2051532,74.042333 -5.9835879,72.972682 -9.75,73.09375 z"
id="path3937"
style="fill:#000000;fill-opacity:1;stroke:none"
inkscape:original="M -9.71875 74.34375 C -13.230599 74.456635 -16.76467 75.641953 -20.625 77.46875 L -20 80 C -19.731211 80.103955 -19.729288 80.147142 -19.375 80.25 C -17.218663 80.876033 -13.703662 81.375 -9.8125 81.375 C -5.9213382 81.375 -2.4063369 80.876033 -0.25 80.25 C 0.10428761 80.147142 0.10621054 80.103955 0.375 80 L 1.03125 77.6875 C -2.7172738 75.190412 -6.2069011 74.230865 -9.71875 74.34375 z "
inkscape:radius="1.2531847"
sodipodi:type="inkscape:offset" />
<rect
transform="matrix(0.9205234,-0.39068744,0.39068744,0.9205234,0,0)"
ry="1.1810193"
rx="1.1810193"
y="-2.754653"
x="-15.569602"
height="2.1871843"
width="1.0935922"
id="rect3939"
style="fill:#000000;fill-opacity:1;stroke:none" />
<rect
style="fill:#000000;fill-opacity:1;stroke:none"
id="rect3941"
width="1.0935922"
height="2.1871843"
x="6.5567312"
y="6.6361833"
rx="1.1810193"
ry="1.1810193"
transform="matrix(-0.9205234,-0.39068744,-0.39068744,0.9205234,0,0)" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
style="fill:#000000;fill-opacity:1;stroke:none"
id="path3943"
d="m -12,0 c -1.630647,0 -2.952548,1.2337743 -2.952548,2.7557118 0.01278,0.5632387 0.06085,1.232346 0.393673,2.7557117 0.196837,0.5905097 1.558851,2.1652021 1.574692,2.3620387 0.381733,0.1968365 1.771529,0.1968365 2.165203,0 0,-0.1968366 1.181019,-1.771529 1.377855,-2.3620387 C -9.066594,3.9281919 -9.06754,3.3462214 -9.047452,2.7557118 -9.047452,1.2337743 -10.369352,0 -12,0 z" />
<path
id="path3157"
d="m 38,0 c -1.630647,0 -2.9375,1.2280625 -2.9375,2.75 0.0037,0.1620664 0.01579,0.3963239 0.03125,0.59375 -0.27885,0.118349 -0.299198,0.6610508 -0.0625,1.21875 0.09386,0.2211566 0.213411,0.3909677 0.34375,0.53125 0.03167,0.1567366 0.02336,0.2271022 0.0625,0.40625 0.196837,0.5905097 1.577909,2.1781634 1.59375,2.375 0.381733,0.1968365 1.762576,0.1968365 2.15625,0 0,-0.1968366 1.178164,-1.7844903 1.375,-2.375 C 40.60622,5.3151913 40.62213,5.1903792 40.65625,5.03125 40.764832,4.8997227 40.857512,4.7509639 40.9375,4.5625 41.162363,4.0326858 41.147829,3.5269131 40.90625,3.375 40.920493,3.1615298 40.931227,2.9343906 40.9375,2.75 40.9375,1.2280625 39.630648,0 38,0 z m -1.78125,8.40625 c -1.233461,0.8706787 -3.941711,1.2750309 -3.9375,2.21875 l -0.375,2.5625 c 0,0.519013 0.775005,0.988493 2,1.3125 l 0.1875,0.71875 A 0.42874928,0.42874928 0 0 0 34.375,15.5 c 0.05534,0.0214 0.09834,0.04972 0.25,0.09375 C 35.42389,15.825686 36.63221,16 38,16 39.36779,16 40.60736,15.825686 41.40625,15.59375 41.557907,15.54972 41.569664,15.5214 41.625,15.5 a 0.42874928,0.42874928 0 0 0 0.28125,-0.28125 L 42.125,14.5 c 1.208619,-0.323691 1.96875,-0.797472 1.96875,-1.3125 l -0.375,-2.5625 C 43.714419,9.848863 41.21753,9.3437322 39.9375,8.5 A 0.97584188,0.97584188 0 0 1 39.625,8.75 C 39.020006,9.0524961 38.608286,9 38.09375,9 37.836482,9 37.587947,9.0004922 37.34375,8.96875 37.099553,8.937008 36.902156,8.909026 36.59375,8.75 a 0.97584188,0.97584188 0 0 1 -0.375,-0.34375 z"
style="fill:#bebebe;fill-opacity:1;stroke:none"
inkscape:connector-curvature="0" />
<path
style="fill:#bebebe;fill-opacity:1;stroke:none"
d="m 8,0.7783785 c -2.256463,0 -4.0648649,1.699373 -4.0648649,3.8054054 0.00509,0.2242649 0.021845,0.5484266 0.043244,0.8216216 -0.3858679,0.1637694 -0.4140257,0.9147514 -0.086487,1.6864865 0.1298861,0.3060329 0.295314,0.5410147 0.4756757,0.7351351 0.043823,0.2168896 0.032325,0.3142604 0.086486,0.5621622 0.1511376,0.4534118 0.7470076,1.3420395 1.2972972,2.0756757 0.05396,0.563421 0.109936,1.132004 0,1.772973 -1.5856236,1.315524 -5.67094212,1.881347 -5.66486451,3.243243 L 0,16 16,16 15.91351,15.481081 c -0.0065,-1.1656 -4.098682,-1.881347 -5.664862,-3.243243 -0.06337,-0.521335 -0.07545,-1.043272 -0.04324,-1.556757 0.501434,-0.7738141 1.172201,-1.7868737 1.34054,-2.2918917 0.0605,-0.2557354 0.08252,-0.4284482 0.129729,-0.6486487 0.150255,-0.1820053 0.278504,-0.3878554 0.38919,-0.6486486 0.311162,-0.7331483 0.291049,-1.4330284 -0.04324,-1.6432432 0.01971,-0.2953966 0.03456,-0.6097082 0.04324,-0.8648649 0,-2.1060324 -1.8084,-3.8054054 -4.064865,-3.8054054 z"
id="path3159"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
viewBox="0 0 568 400"
version="1.1"
id="svg4"
sodipodi:docname="background-image-placeholder.svg"
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
width="568"
height="400"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<sodipodi:namedview
id="namedview6"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="1.0029297"
inkscape:cx="109.18014"
inkscape:cy="337.01266"
inkscape:window-width="1920"
inkscape:window-height="1048"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<!-- Font Awesome Pro 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) -->
<path
d="m 374.10635,275.08863 v 7.50887 c 0,12.44125 -10.08533,22.52659 -22.52659,22.52659 H 171.36704 c -12.44124,0 -22.52658,-10.08534 -22.52658,-22.52659 V 162.45567 c 0,-12.44124 10.08534,-22.52659 22.52658,-22.52659 h 7.50887 v 22.52659 h -4.69305 a 2.8158239,2.8158239 0 0 0 -2.81582,2.81583 v 114.51018 a 2.8158239,2.8158239 0 0 0 2.81582,2.81582 h 174.58109 a 2.8158239,2.8158239 0 0 0 2.81581,-2.81582 v -4.69305 z M 393.81713,117.4025 H 219.23606 a 2.8158239,2.8158239 0 0 0 -2.81582,2.81582 v 114.51017 a 2.8158239,2.8158239 0 0 0 2.81582,2.81582 h 174.58107 a 2.8158239,2.8158239 0 0 0 2.81581,-2.81582 V 120.21832 a 2.8158239,2.8158239 0 0 0 -2.81581,-2.81582 z m 2.81581,-22.52659 c 12.44126,0 22.5266,10.08534 22.5266,22.52659 v 120.14181 c 0,12.44125 -10.08535,22.5266 -22.5266,22.5266 h -180.2127 c -12.44125,0 -22.5266,-10.08535 -22.5266,-22.5266 V 117.4025 c 0,-12.44125 10.08535,-22.52659 22.5266,-22.52659 z m -123.89623,52.56204 c 0,10.3674 -8.40478,18.77216 -18.77216,18.77216 -10.3674,0 -18.77217,-8.40476 -18.77217,-18.77216 0,-10.3674 8.40477,-18.77216 18.77217,-18.77216 10.3674,0 18.77216,8.40476 18.77216,18.77216 z m -33.78989,45.05318 18.54454,-18.54455 c 2.19916,-2.19915 5.76494,-2.19915 7.96456,0 L 284,192.49113 l 48.58001,-48.58 c 2.19916,-2.19916 5.76493,-2.19916 7.96456,0 l 33.5618,33.56227 v 37.54432 H 238.94683 Z"
id="path2"
style="fill:#999999;stroke-width:0.469304" />
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

Some files were not shown because too many files have changed in this diff Show More