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 - Status | Demo | Docs | Install
  1. Cloudron Forum
  2. App Wishlist
  3. Dify.ai, a self-hosted prompt-management tool

Dify.ai, a self-hosted prompt-management tool

Scheduled Pinned Locked Moved App Wishlist
13 Posts 7 Posters 6.3k Views 8 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.
  • T Offline
    T Offline
    taowang
    wrote on last edited by
    #2

    I am looking into this as well. I have been using flowise, a ui on top of langchain.
    Dify is not based on langchain It could be another alternative to langchain.

    1 Reply Last reply
    0
    • U Offline
      U Offline
      umnz
      wrote on last edited by
      #3

      From a quick scan it isn't very clear from the pricing page whether the self hosted community edition is feature complete or has certain features missing. Has anyone found a price/feature/comparison page? Otherwise I agree this looks very solid.

      T 1 Reply Last reply
      0
      • U umnz

        From a quick scan it isn't very clear from the pricing page whether the self hosted community edition is feature complete or has certain features missing. Has anyone found a price/feature/comparison page? Otherwise I agree this looks very solid.

        T Offline
        T Offline
        taowang
        wrote on last edited by
        #4

        @umnz with the community self-hosted version, you can't modify their branding ("powered by dify" and logo) unless you obtain a license from them. If you just use dify as backend, you don't need to purchase license.

        U 1 Reply Last reply
        3
        • T taowang

          @umnz with the community self-hosted version, you can't modify their branding ("powered by dify" and logo) unless you obtain a license from them. If you just use dify as backend, you don't need to purchase license.

          U Offline
          U Offline
          umnz
          wrote on last edited by
          #5

          @taowang seems like a good candidate for Cloudron in that case!

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

            via ai:

            "Importance of AI Prompt Management:

            Consistency: Ensures consistent outputs across multiple interactions or users.
            Efficiency: Saves time by reusing and refining effective prompts.
            Performance optimization: Helps in fine-tuning prompts for better results.
            Collaboration: Enables teams to share and improve prompts collectively.
            Version control: Tracks changes and improvements in prompts over time.
            Compliance: Helps maintain adherence to guidelines and ethical standards.

            Issues in Prompt Management:

            Versioning: Keeping track of different prompt versions and their effectiveness.
            Organization: Managing a large number of prompts across various projects or use cases.
            Sharing: Efficiently sharing prompts among team members or across departments.
            Testing: Systematically testing and comparing different prompt variations.
            Documentation: Maintaining clear records of prompt purposes, contexts, and performance.
            Security: Ensuring sensitive prompts are not exposed to unauthorized users.
            Scalability: Managing prompts as the number of AI applications and users grows.

            How dify.ai can help:

            Centralized repository: Provides a single location to store and organize all prompts.
            Version control: Tracks changes to prompts over time, allowing for easy rollbacks if needed.
            Collaboration features: Enables team members to work together on prompt development and refinement.
            Testing and optimization: Offers tools to systematically test and compare different prompt versions.
            Integration capabilities: Can potentially integrate with various AI models and platforms for seamless workflow.
            User management: Allows for access control and permission settings for different team members.
            Analytics: Provides insights into prompt performance and usage patterns.
            Templating: Offers reusable prompt templates to maintain consistency across similar use cases.
            API access: Likely provides API endpoints for programmatic access to prompts in applications.
            Documentation: Facilitates adding context, notes, and performance data to each prompt.
            "

            1 Reply Last reply
            0
            • T Offline
              T Offline
              taowang
              wrote on last edited by
              #7

              This app is extremely complicated. It includes at least 9 services....

              1 Reply Last reply
              0
              • Z Offline
                Z Offline
                zonzonzon
                wrote on last edited by
                #8

                vote for this app!

                timconsidineT 1 Reply Last reply
                0
                • Z zonzonzon

                  vote for this app!

                  timconsidineT Offline
                  timconsidineT Offline
                  timconsidine
                  App Dev
                  wrote on last edited by
                  #9

                  @zonzonzon er, you didn't vote

                  Indie app dev, scratching my itches, lover of Cloudron PaaS

                  1 Reply Last reply
                  2
                  • T Offline
                    T Offline
                    taowang
                    wrote on last edited by
                    #10

                    For folks who need to self host this app, I created a comprehensive tutorial.

                    Create a fresh server, update and upgrade the system, install docker and docker compose with this one command.

                    sudo apt-get update -y &&
                    sudo apt-get upgrade -y &&
                    sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release &&
                    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg &&
                    echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null &&
                    sudo apt-get update -y &&
                    sudo apt-get install -y docker-ce &&
                    sudo usermod -aG docker $USER &&
                    sudo curl -L https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-`uname -s-uname -m` -o /usr/local/bin/docker-compose &&
                    sudo chmod +x /usr/local/bin/docker-compose && \

                    Clone the Repo

                    git clone https://github.com/langgenius/dify.git

                    Customize the .env file

                    cd dify/docker
                    cp .env.example .env

                    I only customized the following variables.
                    APP_WEB_URL=your_domain_name
                    NGINX_HTTPS_ENABLED=true
                    NGINX_SSL_CERT_FILENAME=cert.pem
                    NGINX_SSL_CERT_KEY_FILENAME=key.pem

                    Ctrl S to save, Ctrl X to exit the nano editor.
                    cd -

                    Create SSL Certificate

                    Create ssl certificate at Cloudflare (open SSL/TSL tab and open Original Server)

                    nano dify/docker/nginx/ssl/cert.pem
                    Copy and paste the Cloudflare certificate, then Ctrl S, Ctrl X

                    nano dify/docker/nginx/ssl/key.pem
                    Copy and paste the Cloudflare SSL key, then Ctrl S, Ctrl X

                    Deploy

                    cd dify/docker
                    docker compose up -d

                    Upgrade

                    cd dify/docker
                    docker compose down
                    git pull origin main
                    docker compose pull
                    docker compose up -d

                    Setting Up Automated Backups for Dify Using Restic and Cloudflare R2

                    Step 1: Install Restic

                    1. Connect to your server via SSH.
                    2. Update your package list and install Restic:
                      sudo apt update
                      sudo apt install restic
                      

                    Step 2: Prepare Your Cloudflare R2 Bucket

                    1. Create a new R2 bucket in your Cloudflare account if you haven't already.
                    2. Note down the following information from your Cloudflare R2 setup:
                      • Bucket name
                      • Access Key ID
                      • Secret Access Key
                      • R2 Endpoint URL

                    Step 3: Create the Backup Script

                    1. Create a new directory for the Restic script:

                      mkdir -p /root/restic
                      
                    2. Create and open the backup script using nano:

                      nano /root/restic/backup.sh
                      
                    3. Copy and paste the following content into the file:

                      #!/bin/bash
                      
                      # Set environment variables for Restic
                      export RESTIC_REPOSITORY="s3:YOUR_R2_ENDPOINT_URL/YOUR_BUCKET_NAME"
                      export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
                      export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
                      
                      # Set the backup source
                      BACKUP_SOURCE="/root/dify/docker/volumes"
                      
                      # Perform the backup
                      restic backup $BACKUP_SOURCE
                      
                      # Prune old snapshots (keep last 7 daily, last 4 weekly, and last 12 monthly backups)
                      restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
                      
                      # Check the repository for errors
                      restic check
                      
                    4. Replace the following placeholders with your actual Cloudflare R2 information:

                      • YOUR_R2_ENDPOINT_URL: Your Cloudflare R2 endpoint URL
                      • YOUR_BUCKET_NAME: Your R2 bucket name
                      • YOUR_ACCESS_KEY_ID: Your R2 Access Key ID
                      • YOUR_SECRET_ACCESS_KEY: Your R2 Secret Access Key
                    5. Save the file and exit nano:

                      • Press Ctrl + X
                      • When prompted to save, press Y
                      • Press Enter to confirm the file name
                    6. Make the script executable:

                      chmod +x /root/restic/backup.sh
                      
                    7. Secure the script (as it contains sensitive information):

                      chmod 700 /root/restic/backup.sh
                      

                    Step 4: Initialize the Restic Repository

                    1. Set the environment variables (replace with your actual R2 information):

                      export RESTIC_REPOSITORY="s3:YOUR_R2_ENDPOINT_URL/YOUR_BUCKET_NAME"
                      export AWS_ACCESS_KEY_ID="YOUR_ACCESS_KEY_ID"
                      export AWS_SECRET_ACCESS_KEY="YOUR_SECRET_ACCESS_KEY"
                      
                    2. Initialize the Restic repository:

                      restic init
                      

                    Step 5: Set Up Daily Backups

                    1. Open the crontab file:

                      crontab -e
                      
                    2. If prompted to select an editor, choose nano by entering the corresponding number.

                    3. Add the following line at the end of the file to run the backup daily at 3 AM:

                      0 3 * * * /root/restic/backup.sh > /root/restic/backup.log 2>&1
                      
                    4. Save the file and exit nano:

                      • Press Ctrl + X
                      • When prompted to save, press Y
                      • Press Enter to confirm

                    Verifying the Setup

                    To ensure everything is set up correctly:

                    1. Run the backup script manually:

                      /root/restic/backup.sh
                      
                    2. Check the Restic repository for snapshots:

                      restic snapshots
                      

                    Restoring from a Backup

                    To restore your data:

                    1. List available snapshots:

                      restic snapshots
                      
                    2. Restore the latest snapshot:

                      restic restore latest --target /path/to/restore
                      

                      Replace /path/to/restore with the directory where you want to restore the data.

                    Done.

                    1 Reply Last reply
                    6
                    • timconsidineT Offline
                      timconsidineT Offline
                      timconsidine
                      App Dev
                      wrote last edited by
                      #11

                      Started a packaging attempt ...

                      Indie app dev, scratching my itches, lover of Cloudron PaaS

                      1 Reply Last reply
                      3
                      • micmcM Offline
                        micmcM Offline
                        micmc
                        wrote last edited by
                        #12

                        That's a masterpiece 🙂

                        AI Intelligencia RED PILL Podcast
                        (coming soon...)

                        1 Reply Last reply
                        0
                        • timconsidineT Offline
                          timconsidineT Offline
                          timconsidine
                          App Dev
                          wrote last edited by
                          #13

                          V0.0.1 installed on my Cloudron
                          Couple issues to resolve.
                          But 🤞

                          Indie app dev, scratching my itches, lover of Cloudron PaaS

                          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