Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content

Discuss

Feedback, suggestions, anything else Cloudron related

1.2k Topics 10.1k Posts
  • Making sense of app categories?

    3
    2
    4 Votes
    3 Posts
    88 Views
    svtxS
    @joseph said in Making sense of app categories?: It was written by a couple of college grads having fun. See, I knew there was weed involved!
  • Staff holiday/leave/sickness tracker

    Moved
    8
    1 Votes
    8 Posts
    175 Views
    humptydumptyH
    I saw the title and thought it’s a Cloudron PA
  • Cloudron Version Change log?

    6
    0 Votes
    6 Posts
    106 Views
    swheeler78S
    Nice. Thank you. That will do. Got it bookmarked.
  • Cloudron 9.0 (beta) bug reports

    Locked
    205
    1 Votes
    205 Posts
    14k Views
    J
    I will lock this thread since technically 9.x is not really in beta anymore . Please open new threads for issues . Under Support or Discuss as you see fit.
  • 4 Votes
    2 Posts
    119 Views
    No one has replied
  • Add a way to clear app search more easily

    7
    2
    0 Votes
    7 Posts
    180 Views
    nebulonN
    The fix for this to clear the search filter on ESC if the view is active: https://git.cloudron.io/platform/box/-/commit/425e196dfc4f4c7e31870f36df7cab0417f7a523
  • Occasional timeouts when sending emails

    Moved mail
    2
    2 Votes
    2 Posts
    64 Views
    nebulonN
    Haven't encountered such timeouts from thunderbird, unless the network is actually flaky. Maybe check if both ipv4 and ipv6 are setup but only one works? Could be that thunderbird (probably relying on the system's network interface selector) sometimes picks one of the two which resolves but does not route.
  • Backup failure during app update is not shown in the UI

    backup
    3
    0 Votes
    3 Posts
    120 Views
    scookeS
    @nebulon I had a previous Minio backup destination which had started to fail due to an incorrect region setting (?), so I made a new one using Minio. BUT, I had not changed the setting "Store automatic-update backups here" to the new one. Yeah, it would start by backing up, I could see it in the top part of the app dashboard, then I would look at my other screen to work, and a few minutes later look back and it was running, like it was finished. But the green arrow was there, and it was only a few minutes, like 2 or 3, so I was thinking there is no way it backed up, downloaded the new images, reconfigured and everything in that short amount of time. So I started watching and yeah, it would hit a point early on the backup, then the screen would flash and reload in an instant and just be running again. Not even a fail, or "starting" notice... just running.
  • This topic is deleted!

    0
    0 Votes
    0 Posts
    17 Views
    No one has replied
  • How to Setup LinkStack on Cloudron

    linkstack linktree littlelink tutorial custom-apps
    13
    5 Votes
    13 Posts
    2k Views
    GengarG
    Ok I did it and it works. @rstockm FYI, here is how I did it : Install LAMP and open the terminal Cd to the web root directory cd /app/data/public Download the Latest LinkStack Release LATEST_URL=$(curl -s https://api.github.com/repos/LinkStackOrg/LinkStack/releases/latest \ | grep "browser_download_url" \ | grep "linkstack.zip" \ | cut -d '"' -f 4) wget -O linkstack.zip "$LATEST_URL" unzip -o linkstack.zip rm linkstack.zip Remove Cloudron’s LAMP Default index.php rm index.php Fix folder structure LinkStack is extracted inside a folder named linkstack/. Move everything to the real web root: mv linkstack/* ./ mv linkstack/.* ./ 2>/dev/null || true rmdir linkstack Fix permissions chown -R www-data:www-data /app/data/public Restart the app in Cloudron Open the URL and follow the LinkStack setup installation guide.
  • Newbie Question: Why Do We Need to Request Apps on Cloudron?

    Moved
    6
    3 Votes
    6 Posts
    328 Views
    I
    @jdaviescoates Thank you for the notes. I already read the post. I will watch the video; however, there's no transcript for it, like on YouTube. I've to watch the full video
  • Encrypted Client Hello (ECH) protocol in Cloudron?

    Moved
    2
    1 Votes
    2 Posts
    98 Views
    girishG
    nginx is still implementing this - https://github.com/nginx/nginx/issues/266
  • A decent CRM

    Moved
    21
    1 Votes
    21 Posts
    6k Views
    marcusquinnM
    @james Thanks, but I think the original post is also a spam link. Forbes is one giant affiliate website, doing many of the same things as spammers. It's what's known as a parasite. I'd delete this whole post, as it offers no value to anyone here that's focused on self-hosting and open-source.
  • Using Cloudron Email with external mail gateway

    email server mailgateway dns
    3
    2 Votes
    3 Posts
    233 Views
    J
    There are probably no answers here since it is a very uncommon setup. Why put in so much effort to pipe mails via another mail service into Cloudron . At that point, isn't it just easier to accept using the other service for mail entirely ?
  • VPN/Proxy assistance

    2
    1 Votes
    2 Posts
    140 Views
    J
    Yes, forward proxying does not exist on Cloudron . I think forward proxying is handled by services these days and they are quite expensive since they provide special IPs for scraping.
  • Typo on documentation

    2
    1 Votes
    2 Posts
    200 Views
    jamesJ
    Hello @sebastienserre Thanks for that. Fixing it right away.
  • 2 Votes
    3 Posts
    504 Views
    andreasduerenA
    @girish said in App proxy questions and proxy/authentication possible improvement suggestions: But from Cloudron's POV, there is authentication and authorization But basically having the option to block access to any hosted app by putting auth in front of it (presumably thorugh the web server) could have various good use cases.
  • Cloudron API Docu - Set Operators correction?

    api documentation
    4
    1
    0 Votes
    4 Posts
    191 Views
    jamesJ
    Hello @3246 With the cloudron cli you can run e.g: cloudron exec --app $APP -- fallocate -l 4M /app/data/4M See cloudron exec --help: Usage: cloudron exec [options] [cmd...] Exec a command in an application Options: -t,--tty Allocate tty --app <id/location> App id or location -h, --help display help for command Examples: $ cloudron exec --app myapp # run an interactive shell $ cloudron exec --app myapp ls # run command $ cloudron exec --app myapp -- ls -l # use -- to indicate end of options Was not sure if possible via the API but since I can debug the cloudron cli and see what it do I figured something out. Send the to /api/v1/apps/$APPID/exec # Command is an array `ls -lah /app/data` would become for each space ["ls", "-lah", "/app/data/"] curl "https://my.$DOMAIN.$TLD/api/v1/apps/$APPID/exec" \ -H 'Authorization: Bearer $APITOKEN' \ -H 'content-type: application/json' \ --data-raw '["ls", "-lah", "/app/data/"]' # this returns and id { "id": "a90bcfcec1d29f7a595638ea66c8ac0bb53b594047ac74fc80bf97f75fed0c19" } But getting the output of the executed command is. . . tricky. Just look at the source code for the cli for this part: const searchParams = new URLSearchParams({ rows: stdout.rows || 24, columns: stdout.columns || 80, access_token: token, tty }); const req = https.request({ hostname: adminFqdn, path: `/api/v1/apps/${app.id}/exec/${execId}/start?${searchParams.toString()}`, method: 'GET', headers: { 'Connection': 'Upgrade', 'Upgrade': 'tcp' }, rejectUnauthorized }, function handler(res) { if (res.statusCode === 403) exit('Unauthorized.'); // only admin or only owner (for docker addon) exit('Could not upgrade connection to tcp. http status:', res.statusCode); }); req.on('upgrade', function (resThatShouldNotBeUsed, socket /*, upgradeHead*/) { // do not use res here! it's all socket from here on socket.on('error', exit); socket.setNoDelay(true); socket.setKeepAlive(true); if (tty) { stdin.setRawMode(true); stdin.pipe(socket, { end: false }); // the remote will close the connection socket.pipe(stdout); // in tty mode, stdout/stderr is merged socket.on('end', exitWithCode); // server closed the socket } else { // create stdin process on demand if (typeof stdin === 'function') stdin = stdin(); stdin.on('data', function (d) { var buf = Buffer.alloc(4); buf.writeUInt32BE(d.length, 0 /* offset */); socket.write(buf); socket.write(d); }); stdin.on('end', function () { var buf = Buffer.alloc(4); buf.writeUInt32BE(0, 0 /* offset */); socket.write(buf); }); stdout.on('close', exitWithCode); // this is only emitted when stdout is a file and not the terminal demuxStream(socket, stdout, process.stderr); // can get separate streams in non-tty mode socket.on('end', function () { // server closed the socket if (typeof stdin.end === 'function') stdin.end(); // required for this process to 'exit' cleanly. do not call exit() because writes may not have finished . the type check is required for when stdin: 'ignore' in execSync, not sure why if (stdout !== process.stdout) stdout.end(); // for push stream socket.end(); // process._getActiveHandles(); process._getActiveRequests(); if (stdout === process.stdout) setImmediate(exitWithCode); // otherwise, we rely on the 'close' event above }); } }); req.on('error', exit); // could not make a request req.end(); // this makes the request From a little debugging I got the API path: /api/v1/apps/$APPID/exec/$EXECID/start?rows=21&columns=257&tty=false But when CURL'ing this: curl "https://my.$DOMAIN.TLD/api/v1/apps/$APPID/exec/$EXECID/start?rows=21&columns=257&tty=false" \ -H "Authorization: Bearer $APITOKEN" \ -H 'content-type: application/json' { "status": "Not Found", "message": "exec requires TCP upgrade" } And I am not sure how to "TCP upgrade" the curl request. I will ask the team.
  • Thinking of moving away from Gandi, DNS provider recommendations

    12
    0 Votes
    12 Posts
    686 Views
    timconsidineT
    I use Cloudns for DNS - they’re good
  • 3 Votes
    1 Posts
    107 Views
    No one has replied