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 Offline
    L Offline
    LoudLemur
    wrote on last edited by LoudLemur
    #2

    As of 2025-08-07, here are the links to download all the Linkstack community themes:

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

    We found the linkstack application to be quite slow once it had been installed. For example, switching between one page and another in the admin panel took a while.

    What do you think is the cause?

    Common Causes of Slow Performance:
    PHP-FPM/Apache configuration - Default LAMP settings may be conservative
    Laravel framework overhead - LinkStack is built on Laravel which can be resource-heavy
    Database queries - SQLite can be slower than MySQL for complex operations
    Missing PHP opcache - PHP isn’t caching compiled code
    Resource limits - LAMP app may have CPU/memory constraints
    Quick Performance Improvements:
    Option 1: Switch to MySQL (Faster than SQLite)
    In your LinkStack admin:
    Database settings β†’ Switch from SQLite to MySQL
    Use the credentials from /app/data/credentials.txt
    Option 2: Enable PHP Optimizations
    If you can access the LAMP configuration:
    bash
    Copy

    Check if opcache is enabled

    php -m | grep -i opcache

    Option 3: Increase LAMP Resources
    In Cloudron:
    Go to your LinkStack (LAMP) app settings
    Increase memory limit if available
    Check resource usage in the app dashboard

    1 Reply Last reply
    2
    • L LoudLemur referenced this topic on
    • 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