infra/home/ansible/wavelog-simple-deployment.yml
2025-09-18 16:08:26 -05:00

108 lines
No EOL
3.1 KiB
YAML

---
apiVersion: apps/v1
kind: Deployment
metadata:
name: wavelog
namespace: wavelog
spec:
replicas: 1
selector:
matchLabels:
app: wavelog
template:
metadata:
labels:
app: wavelog
spec:
initContainers:
- name: setup
image: php:8.2-apache
command:
- /bin/bash
- -c
- |
echo "Installing dependencies..."
apt-get update && apt-get install -y \
git unzip libpng-dev libjpeg-dev libfreetype6-dev \
libzip-dev libicu-dev mariadb-client curl \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install gd mysqli pdo pdo_mysql zip intl
echo "Cloning Wavelog..."
cd /tmp
git clone https://github.com/wavelog/wavelog.git
cp -R wavelog/* /var/www/html/
cp -R wavelog/.* /var/www/html/ 2>/dev/null || true
# Create config directory
mkdir -p /var/www/html/application/config/docker
# Create database.php config
cat > /var/www/html/application/config/database.php << 'EOF'
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$active_group = 'default';
$query_builder = TRUE;
$db['default'] = array(
'dsn' => '',
'hostname' => '10.0.19.6',
'username' => 'wavelog',
'password' => 'm4icNmGTRtOMgrNxsxEdrw',
'database' => 'wavelog',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8mb4',
'dbcollat' => 'utf8mb4_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
EOF
# Set permissions
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
chmod -R 777 /var/www/html/uploads
chmod -R 777 /var/www/html/application/cache
chmod -R 777 /var/www/html/application/logs
chmod -R 777 /var/www/html/userdata
# Enable Apache rewrite module
a2enmod rewrite
echo "Setup complete!"
volumeMounts:
- name: data
mountPath: /var/www/html
containers:
- name: wavelog
image: php:8.2-apache
ports:
- containerPort: 80
name: http
volumeMounts:
- name: data
mountPath: /var/www/html
env:
- name: APACHE_DOCUMENT_ROOT
value: /var/www/html
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
volumes:
- name: data
persistentVolumeClaim:
claimName: wavelog-data