Same here , i usually don't talk a lot online.
Thank you Cloudron team !
i'm excited on each update/annoucement because they always brings improvements / new features that i really need !
Same here , i usually don't talk a lot online.
Thank you Cloudron team !
i'm excited on each update/annoucement because they always brings improvements / new features that i really need !
i have done a Cloudron package at https://git.cloudron.io/nils/pocketbase if some adventurous Cloudroneers want to test it. Packaging it is pretty easy but i'm not sure to keep it updated if it does not fit my needs.
Also i may be more interested to fork the base project to support Postgresql because SQLite... i don't know... it feels weak to me.
as the error suggest , i have deleted the 'directory_server_config' row in the settings table and all seems back to normal.
detailed resolution steps for references :
/home/yellowtent/box/setup
start.sh
script as rootAssertionError [ERR_ASSERTION]: ifError got unwanted exception: Duplicate entry 'directory_server_config' for key 'settings.PRIMARY'
then you can solve it with the following :mysql --password=password --database=box
select * from settings where name='directory_server_config';
and backup the result somwhere..;delete from settings where name='directory_server_config';
exit
./start.sh
and the error should be gonei have to test it in production so i've done it here : https://git.cloudron.io/nils/pocketbase
i may improve this package ,handling Cloudron user management and email configuration if people or i find interest in it .
I'm sorry for awakening an old thread, but as this subject came up first in my Google search, I thought it would be wise to share a proper solution regarding the unfiltered_html setting in Cloudron's WordPress managed app.
In the WordPress managed app, the unfiltered_html capability is configured in the wp-config.php file :
define('DISALLOW_UNFILTERED_HTML', true);
to revert this you can just change this line to the following one:
define('DISALLOW_UNFILTERED_HTML', false);
The reason WordPress managed on Cloudron could be a better choice for some use cases, particularly from a security standpoint, is noteworthy. In the managed version, most of the WordPress files are on an immutable partition, meaning they cannot be altered. This greatly lowers the risk of security issues caused by unauthorized changes to the files.
Also, as the WordPress core files are part of the WordPress cloudron app's, they are not included in the Cloudron's backups, making the backups lighter and quicker since only plugins data and customizations are backed up, not the entire WordPress core.
Just wanted to share a bash script that handle the migration of a wordpress app
You must have a rsync backup of the app on Minio to use this script
Since i've made this script because the Cloudron restore thing don't work for many of my wordpress instances the script connect to the Minio api to download a backup, then it creates an app on the destination cloudron and handle the files and database import.
i've made it available on the Cloudron Gitlab here : https://git.cloudron.io/nils/wordpress-migration-from-minio
( @cloudronTeam tell me if you want me to host it elsewhere).
this script could be useful if you get the following error when cloning / restoring or migrating an app:
External Error: Error loading fsmetadata.json:ENOENT: no such file or directory, open '/home/yellowtent/appsdata/66b1a0bd-.../fsmetadata.json'
I have created a A DNS records for master.domain.io
and *.master.domain.io
which point to the ip of my cloud (1.1.1.1 for the example).
I created a CNAME record for anotherdomain.io
which points to master.domain.io
.
I added the domain anotherdomain.io
to the cloudron (wildcard option) and it worked.
When I try to install an app on anotherdomaine.io
I get stuck with this error:
box:dns/waitfordns waitForDns: waiting for anotherdomaine.io to be 1.1.1.1 in zone thenils.fr
Jan 25 14:24:31 box:dns/waitfordns waitForDns: nameservers are ["ns103.ovh.net","dns103.ovh.net"]
Jan 25 14:24:31 box:dns/waitfordns resolveIp: Checking if anotherdomaine.io has A record at 213.251.128.147
Jan 25 14:24:31 box:dns/waitfordns resolveIp: Checking if anotherdomaine.io has CNAME record at 213.251.128.147
Jan 25 14:24:31 box:dns/waitfordns resolveIp: Resolving anotherdomaine.io's CNAME record master.domaine.io
Jan 25 14:24:31 box:dns/waitfordns isChangeSynced: NS ns103.ovh.net (213.251.128.147) errored when resolve anotherdomaine.io (A): Error: queryA EREFUSED master.domaine.io
Jan 25 14:24:31 box:dns/waitfordns waitForDns: anotherdomaine.io at ns ns103.ovh.net: not done
Jan 25 14:24:31 box:dns/waitfordns Attempt 1 failed. Will retry: ETRYAGAIN
I can't permanently control the DNS records of anotherdomain.io
but I need to be able to redirect it to another ip if I want and i have full control over master.domain.io
.
Also, the error tells me to point to 213.251.128.147
but that's ovh's DNS server ip .
i don't know if i'm missing something or if there is a bug or if cloudron doesn't like CNAME ?
Thanks
my cloudron has updated last night and since the dashboard is unresponsive, also the mail service is down .
here are the box logs :
q2023-12-04T08:25:17.553Z box:server ==========================================
2023-12-04T08:25:17.553Z box:server Cloudron 7.6.1
2023-12-04T08:25:17.553Z box:server ==========================================
2023-12-04T08:25:17.554Z box:platform initializing platform
2023-12-04T08:25:17.606Z box:tasks stopAllTasks: stopping all tasks
2023-12-04T08:25:17.607Z box:shell stopTask spawn: /usr/bin/sudo -S /home/yellowtent/box/src/scripts/stoptask.sh all
2023-12-04T08:25:17.639Z box:shell stopTask (stdout): All tasks stopped
2023-12-04T08:25:17.662Z box:reverseproxy writeDashboardConfig: writing dashboard config for 3es.io
2023-12-04T08:25:17.688Z box:shell reload spawn: /usr/bin/sudo -S /home/yellowtent/box/src/scripts/restartservice.sh nginx
Error: Error starting server: {"name":"BoxError","reason":"Database Error","details":{},"message":"ER_BAD_FIELD_ERROR: Unknown column 'type' in 'field list'","nestedError":{"code":"ER_BAD_FIELD_ERROR","errno":1054,"sqlMessage":"Unknown column 'type' in 'field list'","sqlState":"42S22","index":0,"sql":"INSERT INTO notifications (type, title, message, acknowledged, eventId) VALUES ('cloudronUpdated', 'Cloudron updated to v7.6.1', 'Cloudron was updated from v7.5.2 to v7.6.1.\\n\\nChangelog:\\n* Cleanup backup validation mount point\\n* dashboard: remove nginx config of old domain when domain changed\\n* Show disk consumption of docker volumes for /run and /tmp of apps separately\\n* dns: add dnsimple automation\\n* roles: admin role can access branding and networking\\n* dns: add ovh backend\\n\\n', false, '263e1e2a-9094-4ee5-80e7-4bcee41e8fde')"},"code":"ER_BAD_FIELD_ERROR","sqlMessage":"Unknown column 'type' in 'field list'"}
at main (/home/yellowtent/box/box.js:48:41)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
i have rebooted and tried to run the /home/yellowtent/box/setup/start.sh
script as root but it failed with this error :
./start.sh
2023-12-04T08:29:56 ==> start: Cloudron Start
media:x:500:
2023-12-04T08:29:56 ==> start: Configuring docker
Synchronizing state of apparmor.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apparmor
2023-12-04T08:29:59 ==> start: Ensuring directories
2023-12-04T08:29:59 ==> start: Configuring journald
2023-12-04T08:30:00 ==> start: Setting up unbound
2023-12-04T08:30:00 ==> start: Adding systemd services
Synchronizing state of unbound.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable unbound
Synchronizing state of cron.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable cron
2023-12-04T08:30:13 ==> start: Configuring sudoers
2023-12-04T08:30:13 ==> start: Configuring collectd
2023-12-04T08:30:13 ==> start: Configuring sysctl
2023-12-04T08:30:13 ==> start: Configuring logrotate
2023-12-04T08:30:13 ==> start: Adding motd message for admins
2023-12-04T08:30:13 ==> start: Configuring nginx
2023-12-04T08:30:13 ==> start: Starting mysql
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
mysql: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.
2023-12-04T08:30:13 ==> start: Migrating data
Ignoring invalid configuration option passed to Connection: driver. This is currently a warning, but in future versions of MySQL2, an error will be thrown if you pass an invalid configuration option to a Connection
[ERROR] AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Duplicate entry 'directory_server_config' for key 'settings.PRIMARY'
at /home/yellowtent/box/node_modules/db-migrate/lib/commands/on-complete.js:15:14
at tryCatcher (/home/yellowtent/box/node_modules/bluebird/js/release/util.js:16:23)
at Promise.successAdapter (/home/yellowtent/box/node_modules/bluebird/js/release/nodeify.js:22:30)
at Promise._settlePromise (/home/yellowtent/box/node_modules/bluebird/js/release/promise.js:601:21)
at Promise._settlePromiseCtx (/home/yellowtent/box/node_modules/bluebird/js/release/promise.js:641:10)
at _drainQueueStep (/home/yellowtent/box/node_modules/bluebird/js/release/async.js:97:12)
at _drainQueue (/home/yellowtent/box/node_modules/bluebird/js/release/async.js:86:9)
at Async._drainQueues (/home/yellowtent/box/node_modules/bluebird/js/release/async.js:102:5)
at Async.drainQueues [as _onImmediate] (/home/yellowtent/box/node_modules/bluebird/js/release/async.js:15:14)
at process.processImmediate (node:internal/timers:476:21)
at Packet.asError (/home/yellowtent/box/node_modules/mysql2/lib/packets/packet.js:728:17)
at Query.execute (/home/yellowtent/box/node_modules/mysql2/lib/commands/command.js:29:26)
at Connection.handlePacket (/home/yellowtent/box/node_modules/mysql2/lib/connection.js:456:32)
at PacketParser.onPacket (/home/yellowtent/box/node_modules/mysql2/lib/connection.js:85:12)
at PacketParser.executeStart (/home/yellowtent/box/node_modules/mysql2/lib/packet_parser.js:75:16)
at Socket.<anonymous> (/home/yellowtent/box/node_modules/mysql2/lib/connection.js:92:25)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
2023-12-04T08:30:14 ==> start: DB migration failed
from what i can tell all other services seems ok since i have acces to most of the installed apps.
Thanks to the Cloudron team who solved the problem very quickly on a Sunday. I had been struggling with the server for more than 4 hours, and they fixed the issue in 30 minutes!
@rosano posted a simple tutorial for installing custom apps without docker : https://forum.cloudron.io/topic/11349/install-custom-app-via-private-registry-and-cloudron-build
@jdaviescoates actually it should work with any cloudron apps that use the mysql addon (and no other database addons)
i used nextcloud with the external link app to embed other app installed on cloudron .
since x-frame-option is deprecated how can i handle cloudron app embedding in nextcloud ?
thanks!
@girish Done !
Thanks @girish
Hi there
i can't manage existing email since v7.3.4 update , the page at /#/email/domain.com/mailboxes
show a empty list under "Mailboxes"
as you can see on the second screenshot there are 6 mailboxes on this domain ( see the wrong "usage: 0Kb" and the red status dot should be green )
all DNS entry are ok :
**edit : **
forgot to mention that the email address still work.
also, not related to email but may be linked, i can't see new platform or app backups but i can see/restore old backups.
the backup logs seems ok (no error) and on the minio instance that host my backups (on another server) the backuped files seems ok.
For information the minio instance is not up to date and stuck with the fs filesystem for the moment.
@girish waiting for five minutes worked and the email list got hydrated.
I've just spotted that sometime the list appear for less than a second, just before reloading when i hit F5 or CTRL+R . seems like some async state reactivity issue.
also if i wait on the emails resume page at /#/email
i see the usage getting updated but the status dots stay red (except for the first seven domains which have a green status dot)
for the backup thing i will open a new post.
@girish thanks, that worked