Skip to content

Deploying Atheos

Atheos is a modern, lightweight web-based IDE that brings the power of a full development environment to your browser. As an actively maintained fork of the popular Codiad project, Atheos has been completely rewritten to utilize modern tooling, cleaner code, and an expanded feature set while maintaining a minimal server footprint.

Built with simplicity and speed in mind, Atheos requires only Apache/Nginx with PHP 7+ and basic file system access—no database needed. It’s perfect for developers who want a fast, self-hosted coding environment accessible from anywhere without the overhead of larger desktop editors.

40+ Languages

Syntax highlighting and support for over 40 programming languages

Real-Time Collaboration

Multiple users can edit files simultaneously with live updates

Plugin Marketplace

Extend functionality with community-built plugins

Built-in Git

Native Git integration for version control operations

Key Features

Atheos provides a comprehensive development experience directly in your browser:

FeatureDescription
Multi-Language SupportSyntax highlighting for 40+ languages including PHP, JavaScript, Python, Ruby, and more
Split EditorDivide your workspace into multiple editor panes for efficient coding
Plugin SystemInstall extensions from the marketplace or create your own
Theme SupportChoose from 20+ syntax color themes or customize your own
Smart AutocompleteIntelligent code completion to speed up development
Advanced SearchPowerful search tools across files and projects
LocalStorage BackupAutomatic redundancy prevents data loss
Multi-User SupportTeam collaboration with user permissions

Atheos vs Traditional IDEs

AspectAtheosDesktop IDEs
InstallationBrowser-based, no installRequires local installation
Resource UsageMinimal (~50MB)Heavy (1GB+)
AccessibilityAny device with a browserOnly on installed machine
DatabaseNone requiredOften requires setup
CollaborationBuilt-in real-time editingRequires plugins/extensions

Prerequisites

Before deploying Atheos on Klutch.sh, ensure you have:

  • A Klutch.sh account with an active project
  • A GitHub repository for your Atheos configuration
  • Basic understanding of Docker and PHP applications

Project Structure

Set up your Atheos deployment with the following structure:

  • Directoryatheos-ide/
    • Dockerfile
    • docker-compose.yml (local development)
    • README.md
    • Directoryconfig/
      • apache.conf (Apache configuration)
      • php.ini (PHP settings)

Deployment Configuration

Dockerfile

Create a Dockerfile that sets up Atheos with Apache and PHP:

Dockerfile
FROM php:8.2-apache
# Install required PHP extensions and utilities
RUN apt-get update && apt-get install -y \
git \
unzip \
libzip-dev \
&& docker-php-ext-install zip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Enable Apache modules
RUN a2enmod rewrite headers
# Configure PHP settings
RUN echo "allow_url_fopen = On" >> /usr/local/etc/php/conf.d/atheos.ini \
&& echo "upload_max_filesize = 64M" >> /usr/local/etc/php/conf.d/atheos.ini \
&& echo "post_max_size = 64M" >> /usr/local/etc/php/conf.d/atheos.ini \
&& echo "memory_limit = 256M" >> /usr/local/etc/php/conf.d/atheos.ini
# Set working directory
WORKDIR /var/www/html
# Clone Atheos from the official repository
RUN git clone https://github.com/Atheos/Atheos.git . \
&& chown -R www-data:www-data /var/www/html
# Set proper permissions for writable directories
RUN chmod -R 775 /var/www/html/data \
&& chmod -R 775 /var/www/html/workspace \
&& chmod -R 775 /var/www/html/plugins \
&& chmod -R 775 /var/www/html/themes
# Configure Apache for Atheos
RUN echo '<Directory /var/www/html>\n\
Options Indexes FollowSymLinks\n\
AllowOverride All\n\
Require all granted\n\
</Directory>' > /etc/apache2/conf-available/atheos.conf \
&& a2enconf atheos
# Expose port 80
EXPOSE 80
# Start Apache in foreground
CMD ["apache2-foreground"]

Alternative Dockerfile with Nginx

If you prefer Nginx over Apache, use this configuration:

Dockerfile.nginx
FROM php:8.2-fpm-alpine
# Install dependencies
RUN apk add --no-cache \
nginx \
git \
supervisor \
libzip-dev \
&& docker-php-ext-install zip
# Configure PHP
RUN echo "allow_url_fopen = On" >> /usr/local/etc/php/conf.d/atheos.ini \
&& echo "upload_max_filesize = 64M" >> /usr/local/etc/php/conf.d/atheos.ini \
&& echo "post_max_size = 64M" >> /usr/local/etc/php/conf.d/atheos.ini
# Set working directory
WORKDIR /var/www/html
# Clone Atheos
RUN git clone https://github.com/Atheos/Atheos.git . \
&& chown -R nobody:nobody /var/www/html
# Set permissions
RUN chmod -R 775 data workspace plugins themes
# Nginx configuration
RUN echo 'server { \
listen 80; \
server_name _; \
root /var/www/html; \
index index.php; \
\
location / { \
try_files $uri $uri/ /index.php?$query_string; \
} \
\
location ~ \.php$ { \
fastcgi_pass 127.0.0.1:9000; \
fastcgi_index index.php; \
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; \
include fastcgi_params; \
} \
\
location ~ /\.(ht|git) { \
deny all; \
} \
}' > /etc/nginx/http.d/default.conf
# Supervisor configuration
RUN echo '[supervisord] \
nodaemon=true \
\
[program:nginx] \
command=nginx -g "daemon off;" \
\
[program:php-fpm] \
command=php-fpm -F' > /etc/supervisor/conf.d/supervisord.conf
EXPOSE 80
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]

Local Development with Docker Compose

Test your Atheos setup locally before deploying:

docker-compose.yml
services:
atheos:
build: .
container_name: atheos-ide
ports:
- "8080:80"
volumes:
- atheos-data:/var/www/html/data
- atheos-workspace:/var/www/html/workspace
- atheos-plugins:/var/www/html/plugins
- atheos-themes:/var/www/html/themes
restart: unless-stopped
volumes:
atheos-data:
atheos-workspace:
atheos-plugins:
atheos-themes:

Deploying to Klutch.sh

  1. Push your repository to GitHub

    1. Initialize a Git repository and commit your Dockerfile
    Terminal window
    git init
    git add .
    git commit -m "Initial Atheos configuration"
    git remote add origin https://github.com/yourusername/atheos-ide.git
    git push -u origin main
  2. Create a new app on Klutch.sh

    1. Navigate to your Klutch.sh dashboard at klutch.sh/app
    2. Select your project or create a new one
    3. Click Create App and connect your GitHub repository
    4. Klutch.sh will automatically detect your Dockerfile
  3. Configure the internal port

    1. In your app settings, set the internal port to 80
    2. Select HTTP as the traffic type since Atheos is a web application
  4. Set up persistent storage

    1. Add persistent volumes to preserve your data across deployments
    Mount PathSizePurpose
    /var/www/html/data1 GBConfiguration and user data
    /var/www/html/workspace10 GBProject files and code
    /var/www/html/plugins500 MBInstalled plugins
    /var/www/html/themes200 MBCustom themes
  5. Deploy your application

    1. Click Deploy to build and launch your Atheos instance
    2. Monitor the build logs to ensure successful deployment
    3. Once deployed, access your IDE at https://your-app.klutch.sh
  6. Complete initial setup

    1. On first access, you’ll see the Atheos setup screen
    2. Create your admin username and password
    3. Set your timezone
    4. Create your first project or workspace

Post-Deployment Configuration

Creating Your First Project

After initial setup, create a workspace for your code:

  1. Click the Project icon in the left sidebar
  2. Select Create New Project
  3. Enter a project name and path (e.g., /workspace/my-project)
  4. Click Create to initialize the project

Installing Plugins

Extend Atheos functionality through the plugin marketplace:

  1. Click the Settings icon (gear) in the right panel
  2. Navigate to Marketplace
  3. Browse available plugins:
    • Terminal - In-browser terminal access
    • Beautify - Code formatting
    • Emmet - HTML/CSS shortcuts
    • Git - Enhanced Git integration
  4. Click Install to add plugins

User Management

Add team members to your Atheos instance:

  1. Open SettingsUsers
  2. Click Create User
  3. Set username, password, and permissions
  4. Assign project access as needed

Environment Variables

Configure Atheos behavior through PHP settings in your Dockerfile:

SettingDefaultDescription
allow_url_fopenOnEnable URL-aware fopen wrappers for marketplace
upload_max_filesize64MMaximum file upload size
post_max_size64MMaximum POST data size
memory_limit256MPHP memory limit
max_execution_time300Maximum script execution time

To add more PHP configurations, modify the Dockerfile:

RUN echo "max_execution_time = 300" >> /usr/local/etc/php/conf.d/atheos.ini \
&& echo "display_errors = Off" >> /usr/local/etc/php/conf.d/atheos.ini

Security Considerations

HTTPS Only

Klutch.sh provides automatic SSL certificates for secure connections

Strong Passwords

Use complex passwords for all user accounts

Regular Updates

Pull the latest Atheos version periodically for security patches

File Permissions

Ensure proper permissions on writable directories

Restricting Access

For private development environments, consider adding HTTP Basic Authentication:

Dockerfile (with auth)
# Add to your Dockerfile before the CMD instruction
RUN apt-get update && apt-get install -y apache2-utils \
&& htpasswd -cb /etc/apache2/.htpasswd admin yourpassword \
&& echo '<Directory /var/www/html>\n\
AuthType Basic\n\
AuthName "Atheos IDE"\n\
AuthUserFile /etc/apache2/.htpasswd\n\
Require valid-user\n\
</Directory>' >> /etc/apache2/conf-available/atheos.conf

Customizing Atheos

Adding Custom Themes

Create or install custom themes:

Terminal window
# Structure for custom themes
themes/
├── your-theme/
├── theme.json
├── editor.css
└── screen.css

Workspace Templates

Pre-configure workspaces with project templates:

Dockerfile (with templates)
# Add after cloning Atheos
RUN mkdir -p /var/www/html/workspace/templates \
&& git clone https://github.com/your-org/project-template.git /var/www/html/workspace/templates/starter

Troubleshooting

Common issues and solutions:

IssueCauseSolution
Permission denied errorsIncorrect file permissionsRun chmod -R 775 on data, workspace, plugins, themes directories
Plugins not installingallow_url_fopen disabledEnable in PHP configuration
File upload failsSize limits too lowIncrease upload_max_filesize and post_max_size
Session timeoutPHP session settingsIncrease session.gc_maxlifetime
Marketplace unavailableMissing ZIP extensionInstall php-zip extension

Viewing Logs

Access Apache logs for debugging:

Terminal window
# View error logs
docker logs atheos-ide
# Inside container
tail -f /var/log/apache2/error.log

Performance Optimization

Optimize your Atheos deployment for better performance:

Dockerfile (optimized)
# Enable PHP OPcache for faster execution
RUN docker-php-ext-enable opcache \
&& echo "opcache.enable=1" >> /usr/local/etc/php/conf.d/opcache.ini \
&& echo "opcache.memory_consumption=128" >> /usr/local/etc/php/conf.d/opcache.ini \
&& echo "opcache.max_accelerated_files=10000" >> /usr/local/etc/php/conf.d/opcache.ini \
&& echo "opcache.validate_timestamps=0" >> /usr/local/etc/php/conf.d/opcache.ini
# Enable Apache compression
RUN a2enmod deflate

Additional Resources