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


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Discuss
  3. How to Setup LinkStack on Cloudron

How to Setup LinkStack on Cloudron

Scheduled Pinned Locked Moved Discuss
linkstacklinktreelittlelinktutorialcustom-apps
12 Posts 4 Posters 1.1k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L LoudLemur

    How to Setup LinkStack on Cloudron πŸ”—

    A complete guide to installing LinkStack using Cloudron's LAMP app with all available themes


    πŸ”‘ Key Points to Remember

    • Never unzip LinkStack locally - always extract directly on the server to avoid 500 errors
    • Extract contents to web root - move files out of subfolders into /app/data/public/
    • Fix ownership - ensure all files are owned by www-data:www-data
    • Disable automatic backups before installing themes
    • The type_params column should already exist in modern LinkStack versions
    • Themes are hosted separately from the main LinkStack repository

    πŸ“‹ Step-by-Step Installation

    Step 1: Install LAMP App

    1. Go to your Cloudron control panel at https://my.website.com
    2. Click "App Store"
    3. Search for "LAMP" and install it
    4. Set the location to https://linkstack.website.com
    5. Wait for installation to complete

    Troubleshooting:

    • If DNS doesn't resolve immediately, wait 5-10 minutes for propagation
    • Ensure your domain is properly configured in Cloudron

    Step 2: Download and Extract LinkStack

    1. SSH into your Cloudron server or use the LAMP file manager

    2. Navigate to the web directory:

      cd /app/data/public/
      
    3. Download LinkStack:

      wget https://github.com/LinkStackOrg/LinkStack/archive/refs/heads/main.zip -O linkstack.zip
      
    4. Extract directly on server:

      unzip linkstack.zip
      
    5. Move contents to web root:

      mv LinkStack-main/* .
      mv LinkStack-main/.* . 2>/dev/null
      rm -rf LinkStack-main/
      rm linkstack.zip
      
    6. Fix ownership:

      chown -R www-data:www-data .
      

    Troubleshooting:

    • If you see a 500 error, you likely unzipped locally - start over with server extraction
    • If files aren't loading, check that index.php exists in /app/data/public/
    • Verify ownership with ls -la - all files should show www-data www-data

    Step 3: Complete Installation Wizard

    1. Visit https://linkstack.website.com
    2. Follow the installation wizard:
      • Choose SQLite for simplicity
      • Create your admin account
      • Configure basic settings

    Troubleshooting:

    • If you still see the LAMP welcome page, restart the app and wait a few minutes
    • Check that .env file exists and has proper configuration
    • Ensure the storage directory has write permissions

    Step 4: Configure for Theme Installation

    1. Log into LinkStack admin panel
    2. Navigate to Config settings
    3. Find "Skip update backups" and set it to Enable
    4. Click "Apply changes"

    Troubleshooting:

    • If you can't find backup settings, look under Advanced or System settings
    • Ensure you're logged in as an admin user

    Step 5: Install All Available Themes

    1. Navigate to themes directory:

      cd /app/data/public/themes/
      
    2. Download all official themes:

      # LinkStackOrg themes
      wget https://github.com/linkstackorg/mono/archive/refs/heads/main.zip -O mono.zip
      wget https://github.com/linkstackorg/stargazer/archive/refs/heads/main.zip -O stargazer.zip
      wget https://github.com/linkstackorg/minceraft/archive/refs/heads/main.zip -O minceraft.zip
      wget https://github.com/linkstackorg/bean-soup/archive/refs/heads/main.zip -O bean-soup.zip
      wget https://github.com/linkstackorg/SoT/archive/refs/heads/main.zip -O SoT.zip
      wget https://github.com/linkstackorg/winter-wonderland/archive/refs/heads/main.zip -O winter-wonderland.zip
      wget https://github.com/linkstackorg/flare/archive/refs/heads/main.zip -O flare.zip
      wget https://github.com/linkstackorg/Magic-Kingdom/archive/refs/heads/main.zip -O Magic-Kingdom.zip
      wget https://github.com/linkstackorg/Dark/archive/refs/heads/main.zip -O Dark.zip
      wget https://github.com/linkstackorg/Aurora/archive/refs/heads/main.zip -O Aurora.zip
      wget https://github.com/linkstackorg/llc-vanilla/archive/refs/heads/main.zip -O llc-vanilla.zip
      wget https://github.com/linkstackorg/sublime/archive/refs/heads/main.zip -O sublime.zip
      wget https://github.com/linkstackorg/Dawn/archive/refs/heads/main.zip -O Dawn.zip
      wget https://github.com/linkstackorg/polygon/archive/refs/heads/main.zip -O polygon.zip
      wget https://github.com/linkstackorg/Bongo-Cat/archive/refs/heads/main.zip -O Bongo-Cat.zip
      wget https://github.com/linkstackorg/isaac/archive/refs/heads/main.zip -O isaac.zip
      wget https://github.com/linkstackorg/Misty-Rain/archive/refs/heads/main.zip -O Misty-Rain.zip
      wget https://github.com/linkstackorg/Cloudy-Storm/archive/refs/heads/main.zip -O Cloudy-Storm.zip
      
      # Nekosheen themes
      wget https://github.com/nekosheen/Rainbow/archive/refs/heads/main.zip -O Rainbow.zip
      wget https://github.com/nekosheen/Soothing/archive/refs/heads/main.zip -O Soothing.zip
      wget https://github.com/nekosheen/PaperBold/archive/refs/heads/main.zip -O PaperBold.zip
      
    3. Extract all themes:

      # Unzip all theme files
      for zip in *.zip; do
          if [ -f "$zip" ]; then
              echo "Extracting $zip"
              unzip -q "$zip"
          fi
      done
      
    4. Rename theme folders properly:

      # Remove "-main" suffix from folder names
      for dir in *-main; do
          if [ -d "$dir" ]; then
              newname=$(echo "$dir" | sed 's/-main$//')
              mv "$dir" "$newname"
              echo "Renamed $dir to $newname"
          fi
      done
      
    5. Clean up and fix ownership:

      rm *.zip
      chown -R www-data:www-data .
      

    Troubleshooting:

    • If themes show as duplicates, check folder names are correct (no -main suffix)
    • If thumbnails don't load, restart the LinkStack app
    • Verify each theme folder contains proper theme files
    • Check that all folders are owned by www-data:www-data

    Step 6: Final Configuration

    1. Restart your LinkStack app in Cloudron
    2. Visit https://linkstack.website.com/admin
    3. Navigate to Themes section
    4. Verify all themes are available and displaying properly
    5. Choose your preferred theme and customize your profile

    Troubleshooting:

    • If themes aren't showing, clear browser cache and restart the app
    • Check /app/data/public/themes/ contains all theme folders
    • Ensure each theme folder has the correct internal structure

    βœ… Success Checklist

    • LinkStack loads at your domain
    • Admin panel is accessible
    • All themes are visible in theme selector
    • Themes display proper names and thumbnails
    • Database is working (can create/edit links)
    • File permissions are correct (
      www-data:www-data)

    🎨 Available Themes

    Your installation will include all official themes:

    LinkStackOrg Themes: mono, stargazer, minceraft, bean-soup, SoT, winter-wonderland, flare, Magic-Kingdom, Dark, Aurora, llc-vanilla, sublime, Dawn, polygon, Bongo-Cat, isaac, Misty-Rain, Cloudy-Storm

    Nekosheen Themes: Rainbow, Soothing, PaperBold

    Plus the default themes: PolySleek, Galaxy


    πŸ”§ Common Issues

    500 Internal Server Error: Files were unzipped locally instead of on server - re-extract on server

    Themes not showing: Check folder names, ownership, and restart the app

    Database errors: Modern LinkStack should work out of the box, but if needed: ALTER TABLE links ADD COLUMN type_params TEXT DEFAULT NULL;

    LAMP welcome page still showing: Files aren't in correct location - ensure index.php is in /app/data/public/


    This guide ensures a complete LinkStack installation with all available themes on Cloudron's LAMP stack. Follow each step carefully and use the troubleshooting sections if you encounter issues.

    rstockmR Offline
    rstockmR Offline
    rstockm
    wrote on last edited by
    #3

    Thanks for this HowTo.
    I'm stuck with Step 2:

    @LoudLemur said in How to Setup LinkStack on Cloudron:

    If you see a 500 error, you likely unzipped locally - start over with server extraction
    If files aren't loading, check that index.php exists in /app/data/public/
    Verify ownership with ls -la - all files should show www-data www-data

    This is all fine, the LAMP start page was visible before. Restarting the server results in an endless "restarting..." status of the LAMP app on the cloudron dashboard. Any ideas? I used the build-in console of the LAMP-app

    1 Reply Last reply
    0
    • L Offline
      L Offline
      LoudLemur
      wrote on last edited by LoudLemur
      #4

      Quick answer:

      ```mv linkstack/* .
      mv linkstack/.* . 2>/dev/null
      rm -rf linkstack/
      

      and chown:

      
      

      To fix this issue, which we also had, ensure you extract the .zip contents to (not to another folder) and that you have fixed the ownership to www-data:www-data. It was easier to sort this using the terminal in the LAMP application.

      In bash terminal, or whatever the name of your zip file is:

      unzip linkstack.zip
      ls -la
      

      You’ll probably see a folder like LinkStack-main/ or linkstack/. Move its contents to the current directory:

      mv LinkStack-main/* .
      mv LinkStack-main/.* . 2>/dev/null
      rm -rf LinkStack-main/
      rm linkstack.zip
      

      Then verify:

      ls -la
      

      You should now see files like index.php, artisan, .env.example etc. directly in /app/data/public/.
      After that, restart your LAMP app (perhaps you named it linkstack) and visit https://linkstack.whateveryourwebsiteis.com - you should now see the LinkStack setup page!

      If you go into the terminal, and run ls -la, you should see:

      /app/data/public# ls -la
      

      total 16
      drwxr-xr-x 3 www-data www-data 4096
      drwxr-xr-x 4 www-data www-data 4096 …
      -rw-r–r-- 1 root root 1342 Dec 10 2024 README.md
      drwxr-xr-x 13 root root 4096 Dec 10 2024 linkstack

      You will see the linkstack folder was created. Now, move its contents up to the current directory:
      
      ```mv linkstack/* .
      mv linkstack/.* . 2>/dev/null
      rm -rf linkstack/
      

      Verify what’s now in the directory:

      ls -la
      

      You should now see files like index.php, artisan, .env.example, etc. directly in /app/data/public/.
      Then fix the ownership since some files are owned by root. Use chown

      chown -R www-data:www-data .

      (I can't get that chown command into a code block on the forum for some reason...)

      (Please remember the dot at the end.)
      Verify ownership is correct:

      ls -la
      
      1 Reply Last reply
      0
      • L Offline
        L Offline
        LoudLemur
        wrote on last edited by
        #5
        chown -R www-data:www-data .
        
        1 Reply Last reply
        0
        • rstockmR Offline
          rstockmR Offline
          rstockm
          wrote on last edited by rstockm
          #6

          Thank you for the quick response. Nevertheless - no progress here, files seem to be at the right spot and with proper rights:

          CleanShot 2025-08-11 at 13.06.23@2x.png

          L 1 Reply Last reply
          1
          • rstockmR rstockm

            Thank you for the quick response. Nevertheless - no progress here, files seem to be at the right spot and with proper rights:

            CleanShot 2025-08-11 at 13.06.23@2x.png

            L Offline
            L Offline
            LoudLemur
            wrote on last edited by
            #7

            @rstockm Have you tried using the cli to extract the files from the zip directly into the root, instead of into a folder as usually happens? If you restart from there, you might have more success.

            1 Reply Last reply
            0
            • rstockmR Offline
              rstockmR Offline
              rstockm
              wrote on last edited by
              #8

              I'm confused. I
              a) followed your instructions step-by-step using copy&paste (except the URL, of course)
              b) postet a screenshot which shows all files are in the right place, and have the correct owner

              so either

              1. the vanilla Cloudron LDAP app behaves differently on different accounts (why should it, though?)
              2. there is an error in your manual
              3. ... I am missing something else?
              GengarG 1 Reply Last reply
              1
              • L Offline
                L Offline
                LoudLemur
                wrote on last edited by
                #9

                An error in the tutorial is the most likely explanation, I think. I will try and think back to what we were doing and see if we remember something else. Restarting from scratch might be the best idea, though you have probably tried that several times already. Maybe the browser has a cache of the page or something like that...

                1 Reply Last reply
                2
                • rstockmR rstockm

                  I'm confused. I
                  a) followed your instructions step-by-step using copy&paste (except the URL, of course)
                  b) postet a screenshot which shows all files are in the right place, and have the correct owner

                  so either

                  1. the vanilla Cloudron LDAP app behaves differently on different accounts (why should it, though?)
                  2. there is an error in your manual
                  3. ... I am missing something else?
                  GengarG Offline
                  GengarG Offline
                  Gengar
                  wrote last edited by
                  #10

                  @rstockm I did the same as you and having the same issue also.

                  I guess @LoudLemur there is an issue in the tutorial.

                  @rstockm did you suceed ?

                  rstockmR 1 Reply Last reply
                  1
                  • GengarG Gengar

                    @rstockm I did the same as you and having the same issue also.

                    I guess @LoudLemur there is an issue in the tutorial.

                    @rstockm did you suceed ?

                    rstockmR Offline
                    rstockmR Offline
                    rstockm
                    wrote last edited by
                    #11

                    @Gengar said in How to Setup LinkStack on Cloudron:

                    @rstockm did you suceed ?

                    No, I didn't 😒

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      adhodgson
                      wrote last edited by
                      #12

                      I've been running with this setup for nearly 2 years, I have made the following changes to the config to use Cloudron provided services.

                      Database (MySQL):
                      DB_CONNECTION=mysql
                      DB_HOST=${CLOUDRON_MYSQL_HOST}
                      DB_DATABASE=${CLOUDRON_MYSQL_DATABASE}
                      DB_USERNAME=${CLOUDRON_MYSQL_USERNAME}
                      DB_PASSWORD=${CLOUDRON_MYSQL_PASSWORD}

                      I can't remember whether I entered those environment variables into the install page on first time use or whether I had to put in the credentials directly then change them when I had finished installation.

                      Email:
                      MAIL_MAILER=smtp
                      MAIL_HOST=${CLOUDRON_MAIL_SMTP_SERVER}
                      MAIL_PORT=${CLOUDRON_MAIL_SMTP_PORT}
                      MAIL_USERNAME=${CLOUDRON_MAIL_SMTP_USERNAME}
                      MAIL_PASSWORD=${CLOUDRON_MAIL_SMTP_PASSWORD}
                      MAIL_FROM_ADDRESS=${CLOUDRON_MAIL_FROM}
                      MAIL_FROM_NAME="${APP_NAME}"

                      Redis (https://blog.linkstack.org/redis-linkstack/😞
                      REDIS_HOST=${CLOUDRON_REDIS_HOST}
                      REDIS_PASSWORD=${CLOUDRON_REDIS_PASSWORD}
                      REDIS_PORT=${CLOUDRON_REDIS_PORT}
                      CACHE_DRIVER=redis
                      SESSION_DRIVER=redis

                      Hope this helps.
                      Andrew.

                      1 Reply Last reply
                      2
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Bookmarks
                      • Search