Deploying ResourceSpace
Introduction
ResourceSpace is a powerful open-source digital asset management (DAM) system designed to help organizations organize, catalog, and share their digital media. From marketing teams managing brand assets to museums archiving collections, ResourceSpace provides enterprise-grade functionality without enterprise pricing.
Key highlights of ResourceSpace:
- Digital Asset Management: Organize images, videos, documents, and any digital files
- Metadata Management: Extensive custom metadata fields and tagging
- Advanced Search: Full-text search with filters and saved searches
- Collections: Create and share curated collections of assets
- User Permissions: Granular access control for users and groups
- Workflow Support: Approval workflows and asset lifecycle management
- API Integration: RESTful API for custom integrations
- Batch Processing: Upload and edit multiple assets at once
- Preview Generation: Automatic thumbnails and previews for various file types
- Multi-Language: Available in over 25 languages
- Open Source: GPL-licensed with no per-user fees
This guide walks through deploying ResourceSpace on Klutch.sh using Docker, configuring storage, and setting up your asset library.
Why Deploy ResourceSpace on Klutch.sh
Deploying ResourceSpace on Klutch.sh provides several advantages:
Simplified Deployment: Klutch.sh automatically builds and deploys ResourceSpace without complex LAMP stack configuration.
Persistent Storage: Attach persistent volumes for your asset library that can scale with your collection.
HTTPS by Default: Klutch.sh provides automatic SSL certificates for secure asset sharing.
Environment Variable Management: Securely store database credentials through Klutch.sh.
Custom Domains: Assign a custom domain for professional brand asset portals.
Prerequisites
Before deploying ResourceSpace on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your ResourceSpace configuration
- An external MySQL/MariaDB database
- Basic familiarity with Docker
Preparing Your Repository
Create a GitHub repository containing your Dockerfile for ResourceSpace deployment.
Repository Structure
resourcespace-deploy/├── Dockerfile└── .dockerignoreCreating the Dockerfile
Create a Dockerfile in the root of your repository:
FROM resourcespace/resourcespace:latest
# Environment variables for databaseENV RESOURCESPACE_DB_HOST=${RESOURCESPACE_DB_HOST}ENV RESOURCESPACE_DB_USER=${RESOURCESPACE_DB_USER}ENV RESOURCESPACE_DB_PASS=${RESOURCESPACE_DB_PASS}ENV RESOURCESPACE_DB_NAME=${RESOURCESPACE_DB_NAME:-resourcespace}
# Set base URLENV RESOURCESPACE_BASEURL=${RESOURCESPACE_BASEURL}
# Create necessary directoriesRUN mkdir -p /var/www/html/filestore \ && chown -R www-data:www-data /var/www/html/filestore
# Expose the web interface portEXPOSE 80
# The base image includes the default entrypointEnvironment Variables Reference
| Variable | Required | Description |
|---|---|---|
RESOURCESPACE_DB_HOST | Yes | MySQL/MariaDB host address |
RESOURCESPACE_DB_USER | Yes | Database username |
RESOURCESPACE_DB_PASS | Yes | Database password |
RESOURCESPACE_DB_NAME | No | Database name (default: resourcespace) |
RESOURCESPACE_BASEURL | Yes | Public URL (e.g., https://your-app.klutch.sh) |
Deploying ResourceSpace on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 80
Push Your Repository to GitHub
Commit and push your Dockerfile to GitHub.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project with a descriptive name like “resourcespace” or “dam”.
Create a New App
Within your project, create a new app. Connect your GitHub account and select the repository containing your ResourceSpace Dockerfile.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Add the following environment variables:
| Variable | Value |
|---|---|
RESOURCESPACE_DB_HOST | Your MySQL host |
RESOURCESPACE_DB_USER | Your database user |
RESOURCESPACE_DB_PASS | Your database password |
RESOURCESPACE_DB_NAME | resourcespace |
RESOURCESPACE_BASEURL | https://your-app.klutch.sh |
Attach Persistent Volumes
Add the following volumes:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/www/html/filestore | 100+ GB | Asset storage (size based on collection) |
/var/www/html/include | 1 GB | Configuration files |
Deploy Your Application
Click Deploy to start the build process.
Access ResourceSpace
Once deployment completes, access ResourceSpace at your app URL to complete the setup wizard.
Initial Configuration
Setup Wizard
The first-time setup wizard will guide you through:
- Database connection verification
- Administrator account creation
- Basic system configuration
Configuring Resource Types
- Navigate to Admin > System > Resource Types
- Create resource types for your asset categories
- Configure metadata fields for each type
Setting Up User Groups
- Go to Admin > System > User Groups
- Create groups based on access needs
- Configure permissions for each group
Uploading Assets
- Click Upload in the main navigation
- Select files or drag and drop
- Fill in metadata during upload
- Assets are processed and thumbnails generated automatically
Additional Resources
Conclusion
Deploying ResourceSpace on Klutch.sh gives you a powerful digital asset management system with automatic builds, scalable storage, and secure HTTPS access. Whether managing marketing materials, creative assets, or archival collections, ResourceSpace on Klutch.sh provides enterprise DAM capabilities without the enterprise complexity.