Search

Help Center > Setup & Configuration

Setup & Configuration

This section provides comprehensive setup instructions for administrators and advanced users to configure MediaBrain for optimal performance.

Initial System Setup

info Prerequisites

Before setting up MediaBrain, ensure you have:

  • PHP 8.2 or higher
  • Composer for PHP dependency management
  • Docker and Docker Compose (for containerized deployment)
  • Google Cloud account (for cloud features)
  • Web server (Apache/Nginx) or Docker
1

Download and Extract

Clone or download the MediaBrain repository to your server:

git clone https://github.com/jeffdavid8/mediabrain.net.git cd mediabrain.net
2

Install Dependencies

Install PHP dependencies using Composer:

composer install --no-dev --optimize-autoloader
3

Configure Environment

Set up your environment variables in mediabrain.ini:

; Core configuration version = "0.5" domain = "yourdomain.com" site_name = "MediaBrain" environment = "production" ; Database settings (if applicable) db_host = "localhost" db_name = "mediabrain" db_user = "your_db_user" db_pass = "your_db_password" ; Storage configuration storage_provider = "gcs" ; or "local" gcs_bucket = "your-bucket-name"
4

Set File Permissions

Ensure proper file permissions for web server access:

# For Apache/Nginx chmod -R 755 html/ chown -R www-data:www-data html/ # Create data directories mkdir -p /var/data/mediabrain chmod 755 /var/data/mediabrain

Docker Deployment

Docker deployment is the recommended method for production environments.

1

Configure Docker Compose

Review and modify docker-compose.yml for your environment:

version: '3.8' services: mediabrain-app: build: . ports: - "8080:80" environment: - ENVIRONMENT=production - GOOGLE_APPLICATION_CREDENTIALS=/tmp/service-account-key.json volumes: - ./data:/var/data/mediabrain - ./service-account-key.json:/tmp/service-account-key.json:ro restart: unless-stopped
2

Build and Start

Build the Docker image and start the containers:

# Build and start in detached mode docker-compose up -d --build # View logs docker-compose logs -f mediabrain-app # Check container status docker-compose ps
3

Verify Installation

Access your MediaBrain installation:

# Local testing curl -I http://localhost:8080 # Or open in browser http://localhost:8080

Google Cloud Run Deployment

Deploy MediaBrain to Google Cloud Run for scalable, serverless hosting.

1

Setup Google Cloud Project

Create and configure your Google Cloud project:

# Install Google Cloud SDK # https://cloud.google.com/sdk/docs/install # Login and set project gcloud auth login gcloud config set project YOUR_PROJECT_ID # Enable required APIs gcloud services enable run.googleapis.com gcloud services enable storage.googleapis.com gcloud services enable iam.googleapis.com
2

Create Service Account

Create a service account with appropriate permissions:

# Create service account gcloud iam service-accounts create mediabrain-service \\ --display-name="MediaBrain Service Account" # Grant storage permissions gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \\ --member="serviceAccount:mediabrain-service@YOUR_PROJECT_ID.iam.gserviceaccount.com" \\ --role="roles/storage.admin" # Create and download key gcloud iam service-accounts keys create service-account-key.json \\ --iam-account=mediabrain-service@YOUR_PROJECT_ID.iam.gserviceaccount.com
3

Deploy to Cloud Run

Deploy your application to Google Cloud Run:

# Deploy from source gcloud run deploy mediabrain-app \\ --source . \\ --region us-central1 \\ --allow-unauthenticated \\ --set-env-vars="ENVIRONMENT=production,GOOGLE_APPLICATION_CREDENTIALS=/tmp/service-account-key.json" \\ --memory 512Mi \\ --cpu 1 \\ --max-instances 10

OAuth Provider Configuration

Configure social login providers for enhanced user authentication.

Facebook OAuth

  1. Go to Facebook for Developers
  2. Create a new app or use existing
  3. Add Facebook Login product
  4. Configure OAuth redirect URI: https://yourdomain.com/oauth/facebook.php
  5. Copy App ID and App Secret

Google OAuth

  1. Go to Google Cloud Console
  2. Create OAuth 2.0 credentials
  3. Add authorized redirect URI: https://yourdomain.com/oauth/google.php
  4. Copy Client ID and Client Secret
1

Configure OAuth Settings

Add OAuth credentials to your configuration:

{ "facebook": { "enabled": true, "app_id": "YOUR_FACEBOOK_APP_ID", "app_secret": "YOUR_FACEBOOK_APP_SECRET", "redirect_uri": "https://yourdomain.com/oauth/facebook.php" }, "google": { "enabled": true, "client_id": "YOUR_GOOGLE_CLIENT_ID", "client_secret": "YOUR_GOOGLE_CLIENT_SECRET", "redirect_uri": "https://yourdomain.com/oauth/google.php" } }

Storage Configuration

Configure storage backends for file management and data persistence.

Google Cloud Storage Setup

1

Create Storage Bucket

# Create bucket with appropriate naming gsutil mb gs://mediabrain-prod-storage # Set bucket permissions gsutil iam ch serviceAccount:mediabrain-service@YOUR_PROJECT_ID.iam.gserviceaccount.com:roles/storage.admin gs://mediabrain-prod-storage
2

Configure Application

Update storage configuration:

{ "provider": "gcs", "gcs": { "bucket": "mediabrain-prod-storage", "key_file": "/path/to/service-account-key.json" }, "fallback": "local" }

Local Storage Setup

1

Create Storage Directories

# Create storage directories mkdir -p /var/data/mediabrain/{users,permissions,recipes,ancestry} chmod -R 755 /var/data/mediabrain chown -R www-data:www-data /var/data/mediabrain
2

Configure Application

{ "provider": "local", "local": { "base_path": "/var/data/mediabrain" } }

User Management Setup

1

Create Initial Admin User

Set up the first administrator account:

# Access admin setup (one-time only) https://yourdomain.com/?app=admin&setup=true # Or create via command line php html/apps/admin/create_admin.php --username=admin --password=secure_password --email=admin@yourdomain.com
2

Configure User Roles

Define user roles and permissions in the admin panel:

  1. Login as administrator
  2. Navigate to User Management
  3. Configure role permissions
  4. Set default user role for new registrations

Security Settings

security Security Checklist
  • ✅ Enable HTTPS in production
  • ✅ Use strong passwords for admin accounts
  • ✅ Configure firewall rules
  • ✅ Regular security updates
  • ✅ Enable audit logging
  • ✅ Secure file permissions
  • ✅ Configure CSRF protection
  • ✅ Set up backup procedures
1

Enable HTTPS

Configure SSL/TLS certificates:

# Using Let's Encrypt with Certbot certbot --apache -d yourdomain.com # Or configure in Apache/Nginx # Ensure redirect from HTTP to HTTPS
2

Configure Session Security

Set secure session parameters in php.ini:

session.cookie_secure = 1 session.cookie_httponly = 1 session.use_strict_mode = 1 session.cookie_samesite = "Strict"

Setup Troubleshooting

Common Setup Issues

Permission Denied Errors

# Fix file permissions sudo chown -R www-data:www-data /path/to/mediabrain sudo chmod -R 755 /path/to/mediabrain # Fix storage directory permissions sudo mkdir -p /var/data/mediabrain sudo chown -R www-data:www-data /var/data/mediabrain

Database Connection Issues

  • Verify database credentials in configuration
  • Check database server is running
  • Ensure database user has proper permissions
  • Test connection manually

Google Cloud Storage Issues

  • Verify service account has storage.admin role
  • Check bucket name matches configuration
  • Ensure service account key file is accessible
  • Verify GOOGLE_APPLICATION_CREDENTIALS environment variable

Performance Optimization

PHP Configuration

# Recommended php.ini settings memory_limit = 256M max_execution_time = 60 upload_max_filesize = 50M post_max_size = 50M opcache.enable = 1 opcache.memory_consumption = 128

Caching Setup

  • Enable OPcache for PHP
  • Configure browser caching headers
  • Use CDN for static assets
  • Enable gzip compression
check_circle Setup Complete!

Once setup is complete, verify your installation:

  1. Test login functionality
  2. Verify all applications load correctly
  3. Check file upload capabilities
  4. Test OAuth providers (if configured)
  5. Verify user role permissions

Need Additional Help?

Explore specific application help sections or troubleshooting guides.