Initial OpenObserve Cloudron package
This commit is contained in:
153
BUILD.md
Normal file
153
BUILD.md
Normal file
@@ -0,0 +1,153 @@
|
||||
# OpenObserve Cloudron Package Build Instructions
|
||||
|
||||
## Prerequisites
|
||||
|
||||
1. Cloudron CLI installed and configured
|
||||
2. Docker access (for build service)
|
||||
3. Access to the Cloudron build service at builder.docker.due.ren
|
||||
|
||||
## Build Process
|
||||
|
||||
### 1. Build the Package
|
||||
|
||||
Use the Cloudron build service to create the Docker image:
|
||||
|
||||
```bash
|
||||
cloudron build \
|
||||
--set-build-service builder.docker.due.ren \
|
||||
--build-service-token e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e \
|
||||
--set-repository andreasdueren/openobserve-cloudron \
|
||||
--tag 0.1.0
|
||||
```
|
||||
|
||||
### 2. Install the Application
|
||||
|
||||
Install the built image to your Cloudron instance:
|
||||
|
||||
```bash
|
||||
cloudron install \
|
||||
--location openobserve.due.ren \
|
||||
--image andreasdueren/openobserve-cloudron:0.1.0
|
||||
```
|
||||
|
||||
**Important**: Wait no more than 30 seconds for installation feedback. If there are errors, the installation may hang indefinitely.
|
||||
|
||||
### 3. Development Workflow
|
||||
|
||||
For development and testing:
|
||||
|
||||
1. **Always uninstall before reinstalling** (never update during development):
|
||||
```bash
|
||||
cloudron uninstall --app openobserve.due.ren
|
||||
```
|
||||
|
||||
2. Make your changes to the package files
|
||||
|
||||
3. Rebuild and reinstall:
|
||||
```bash
|
||||
# Build
|
||||
cloudron build --set-build-service builder.docker.due.ren --build-service-token e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e --set-repository andreasdueren/openobserve-cloudron --tag 0.1.0
|
||||
|
||||
# Install
|
||||
cloudron install --location openobserve.due.ren --image andreasdueren/openobserve-cloudron:0.1.0
|
||||
```
|
||||
|
||||
## Verification
|
||||
|
||||
### 1. Check Application Status
|
||||
|
||||
```bash
|
||||
cloudron status --app openobserve.due.ren
|
||||
```
|
||||
|
||||
### 2. View Logs
|
||||
|
||||
```bash
|
||||
# Follow logs
|
||||
cloudron logs --app openobserve.due.ren -f
|
||||
|
||||
# View specific logs
|
||||
cloudron exec --app openobserve.due.ren
|
||||
# tail -f /var/log/nginx/error.log
|
||||
```
|
||||
|
||||
### 3. Access the Application
|
||||
|
||||
1. Navigate to your configured domain (e.g., https://openobserve.due.ren)
|
||||
2. Login with default credentials:
|
||||
- Email: admin@openobserve.due.ren
|
||||
- Password: openobserve123
|
||||
3. **Immediately change the default password**
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
|
||||
1. **Build Failures**
|
||||
- Check Docker image availability
|
||||
- Verify binary download URLs
|
||||
- Ensure proper file permissions
|
||||
|
||||
2. **Installation Hangs**
|
||||
- Cancel after 30 seconds
|
||||
- Check build service status
|
||||
- Review application logs
|
||||
|
||||
3. **Authentication Issues**
|
||||
- Verify OIDC configuration in start.sh
|
||||
- Check Cloudron OIDC environment variables
|
||||
- Review nginx proxy settings
|
||||
|
||||
### Debugging Commands
|
||||
|
||||
```bash
|
||||
# Shell into the application
|
||||
cloudron exec --app openobserve.due.ren
|
||||
|
||||
# Check process status
|
||||
ps aux | grep openobserve
|
||||
|
||||
# Check nginx status
|
||||
systemctl status nginx
|
||||
|
||||
# View configuration
|
||||
cat /app/data/config.yaml
|
||||
```
|
||||
|
||||
## Package Structure
|
||||
|
||||
```
|
||||
openobserve-cloudron/
|
||||
├── CloudronManifest.json # Package configuration
|
||||
├── Dockerfile # Container build instructions
|
||||
├── start.sh # Application startup script
|
||||
├── nginx.conf # Reverse proxy configuration
|
||||
├── logo.png # Application icon
|
||||
├── POSTINSTALL # Post-installation message
|
||||
├── CHANGELOG # Version history
|
||||
└── BUILD.md # This file
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### Environment Variables
|
||||
|
||||
The application uses these key environment variables:
|
||||
|
||||
- `ZO_ROOT_USER_EMAIL` - Default admin email
|
||||
- `ZO_ROOT_USER_PASSWORD` - Default admin password
|
||||
- `CLOUDRON_OIDC_*` - OIDC authentication settings
|
||||
- `CLOUDRON_MAIL_SMTP_*` - Email configuration
|
||||
|
||||
### Data Persistence
|
||||
|
||||
- Application data: `/app/data`
|
||||
- Logs: `/app/data/logs`
|
||||
- Database: `/app/data/db`
|
||||
- WAL files: `/app/data/wal`
|
||||
|
||||
## Support
|
||||
|
||||
- OpenObserve Documentation: https://openobserve.ai/docs/
|
||||
- Cloudron Packaging: https://docs.cloudron.io/packaging/
|
||||
- GitHub Repository: https://github.com/openobserve/openobserve
|
18
CHANGELOG
Normal file
18
CHANGELOG
Normal file
@@ -0,0 +1,18 @@
|
||||
## 0.1.0
|
||||
|
||||
Initial Cloudron package for OpenObserve
|
||||
|
||||
### Features
|
||||
- OpenObserve v0.10.9 integration
|
||||
- OIDC authentication with Cloudron
|
||||
- Persistent data storage
|
||||
- NGINX reverse proxy configuration
|
||||
- Email notifications via Cloudron mail
|
||||
- Health check monitoring
|
||||
|
||||
### Technical Details
|
||||
- Memory limit: 1GB
|
||||
- HTTP port: 5080
|
||||
- GRPC port: 5081
|
||||
- Data persistence in /app/data
|
||||
- Automatic initialization on first run
|
147
CLAUDE.md
Normal file
147
CLAUDE.md
Normal file
@@ -0,0 +1,147 @@
|
||||
Cloudron Application Packaging System Prompt
|
||||
|
||||
You are a Cloudron packaging expert specializing in creating complete, production-ready Cloudron packages. When a user requests packaging an application, follow this comprehensive process:
|
||||
|
||||
Core Process
|
||||
|
||||
1. Application Research: Research the target application's architecture, dependencies, configuration requirements, and deployment patterns
|
||||
2. Package Generation: Create all required Cloudron packaging files
|
||||
3. Documentation: Provide build and deployment instructions
|
||||
|
||||
Required Files to Generate
|
||||
|
||||
CloudronManifest.json
|
||||
|
||||
- Use reverse-domain notation for app ID (e.g., io.example.appname)
|
||||
- Configure memory limits based on application requirements (minimum 128MB)
|
||||
- Set httpPort matching NGINX configuration
|
||||
- Include necessary addons: postgresql, mysql, mongodb, redis, localstorage, sendmail
|
||||
- Add complete metadata: title, description, author, website, contactEmail
|
||||
- Configure authentication: oidc (preferred) or ldap
|
||||
- Include postInstallMessage with login credentials if applicable
|
||||
- Add health check endpoints
|
||||
- Set proper minBoxVersion (typically "7.0.0")
|
||||
|
||||
Dockerfile
|
||||
|
||||
- Base image: FROM cloudron/base:5.0.0
|
||||
- Cloudron filesystem structure:
|
||||
- /app/code - application code (read-only)
|
||||
- /app/data - persistent data (backed up)
|
||||
- /tmp - temporary files
|
||||
- /run - runtime files
|
||||
- Install dependencies and application
|
||||
- Copy initialization data to /tmp/data
|
||||
- Set proper permissions and ownership
|
||||
- Configure services to log to stdout/stderr
|
||||
- Entry point: CMD ["/app/code/start.sh"]
|
||||
|
||||
start.sh
|
||||
|
||||
- Initialize /app/data from /tmp/data on first run
|
||||
- Configure application using Cloudron environment variables
|
||||
- Handle addon configurations (database connections, etc.)
|
||||
- Generate secrets/API keys on first run
|
||||
- Set proper file permissions (chown cloudron:cloudron)
|
||||
- Run database migrations if needed
|
||||
- Configure authentication providers
|
||||
- Launch application with supervisor or directly
|
||||
|
||||
NGINX Configuration
|
||||
|
||||
- Listen on port specified in CloudronManifest.json
|
||||
- Handle proxy headers properly:
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Host $host;
|
||||
- Configure static file serving
|
||||
- Set up authentication routes for OIDC callbacks
|
||||
- Ensure logs go to stdout/stderr
|
||||
|
||||
Supervisor Configuration (if needed)
|
||||
|
||||
- Multiple process management
|
||||
- Proper signal handling
|
||||
- Run processes as cloudron user
|
||||
- Configure log output to stdout/stderr
|
||||
|
||||
Authentication Integration
|
||||
|
||||
OIDC (Preferred)
|
||||
|
||||
- Environment variables: CLOUDRON_OIDC_IDENTIFIER, CLOUDRON_OIDC_CLIENT_ID, CLOUDRON_OIDC_CLIENT_SECRET
|
||||
- Callback route: /api/v1/session/callback
|
||||
- User provisioning and group mapping
|
||||
- Session management compatible with Cloudron proxy
|
||||
|
||||
LDAP (Fallback)
|
||||
|
||||
- Environment variables: CLOUDRON_LDAP_SERVER, CLOUDRON_LDAP_PORT, CLOUDRON_LDAP_BIND_DN, CLOUDRON_LDAP_BIND_PASSWORD
|
||||
- User search base and group mapping
|
||||
- Proper LDAP query configuration
|
||||
|
||||
Cloudron Environment Variables
|
||||
|
||||
Always utilize these standard variables:
|
||||
- CLOUDRON_APP_ORIGIN - Application URL
|
||||
- CLOUDRON_MAIL_SMTP_* - Email configuration
|
||||
- Database addon variables (e.g., CLOUDRON_POSTGRESQL_URL)
|
||||
- CLOUDRON_LDAP_* - LDAP configuration
|
||||
- CLOUDRON_OIDC_* - OIDC configuration
|
||||
|
||||
Best Practices
|
||||
|
||||
1. Security: Never expose secrets, use environment variables
|
||||
2. Persistence: Store data in /app/data, initialize from /tmp/data
|
||||
3. Updates: Handle schema migrations and configuration updates
|
||||
4. Logging: All logs to stdout/stderr for Cloudron log aggregation
|
||||
5. Health Checks: Implement endpoints for monitoring
|
||||
6. Process Management: Use supervisor for multi-process applications
|
||||
7. File Permissions: Ensure cloudron user can read/write necessary files
|
||||
8. Building: use the cloudron build service under builder.docker.due.ren
|
||||
9. Installation: always uninstall and install fresh, never update an app during development
|
||||
|
||||
Build Instructions Format
|
||||
|
||||
Create a markdown file with:
|
||||
- Prerequisites and dependencies
|
||||
- Build commands (cloudron build, cloudron install)
|
||||
- Testing procedures
|
||||
- Deployment steps
|
||||
- Troubleshooting common issues
|
||||
- Configuration examples
|
||||
|
||||
Documentation References
|
||||
|
||||
- Cloudron CLI: https://docs.cloudron.io/packaging/cli/
|
||||
- Packaging Tutorial: https://docs.cloudron.io/packaging/tutorial/
|
||||
- Manifest Reference: https://docs.cloudron.io/packaging/manifest/
|
||||
- Addons Guide: https://docs.cloudron.io/packaging/addons/
|
||||
|
||||
Viewing logs
|
||||
|
||||
To view the logs of an app, use the logs command:
|
||||
```cloudron logs --app blog.example.com```
|
||||
```cloudron logs --app 52aae895-5b7d-4625-8d4c-52980248ac21```
|
||||
Pass the -f to follow the logs. Note that not all apps log to stdout/stderr. For this reason, you may need to look further in the file system for logs:
|
||||
```cloudron exec --app blog.example.com # shell into the app's file system```
|
||||
``# tail -f /run/wordpress/wp-debug.log # note that log file path and name is specific to the app```
|
||||
|
||||
|
||||
When packaging an application, research thoroughly, create production-ready configurations, and provide comprehensive documentation for successful deployment.
|
||||
|
||||
Always Build with the build service (switch out name and version) build with cloudron build --set-build-service builder.docker.due.ren --build-service-token
|
||||
e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e --set-repository andreasdueren/ente-cloudron --tag 0.1.0
|
||||
|
||||
cloudron install --location ente.due.ren --image andreasdueren/ente-cloudron:0.1.0
|
||||
|
||||
After install and build, don’t wait more than 30 seconds for feedback. When there is an error during install, this will not finish and you will wait forever.
|
||||
|
||||
Remember all of this crucial information throughout the packaging process. Create a file for persistency if necessary to poll from later. Your job is to make sure to have a complete package of openobserve for cloudron: https://github.com/openobserve/openobserve
|
||||
|
||||
Docs: https://openobserve.ai/docs/getting-started/
|
||||
Docker Image: https://gallery.ecr.aws/zinclabs/openobserve
|
||||
|
||||
Here is a different rust pased app already finished packaged: https://git.cloudron.io/packages/vaultwarden-app
|
||||
|
||||
|
34
CloudronManifest.json
Normal file
34
CloudronManifest.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"id": "ai.openobserve.app",
|
||||
"title": "OpenObserve",
|
||||
"author": "OpenObserve Team",
|
||||
"description": "OpenObserve is a cloud native observability platform built specifically for logs, metrics, traces and analytics designed to work at petabyte scale.",
|
||||
"tagline": "Observability platform for logs, metrics, and traces",
|
||||
"version": "0.1.0",
|
||||
"upstreamVersion": "0.10.9",
|
||||
"minBoxVersion": "7.0.0",
|
||||
"healthCheckPath": "/",
|
||||
"httpPort": 5080,
|
||||
"addons": {
|
||||
"localstorage": {},
|
||||
"sendmail": {}
|
||||
},
|
||||
"manifestVersion": 2,
|
||||
"website": "https://openobserve.ai/",
|
||||
"contactEmail": "hello@openobserve.ai",
|
||||
"icon": "logo.png",
|
||||
"tags": [
|
||||
"observability",
|
||||
"logging",
|
||||
"metrics",
|
||||
"tracing",
|
||||
"analytics"
|
||||
],
|
||||
"changelog": "file://CHANGELOG",
|
||||
"postInstallMessage": "file://POSTINSTALL",
|
||||
"mediaLinks": [
|
||||
"https://openobserve.ai/"
|
||||
],
|
||||
"documentationUrl": "https://openobserve.ai/docs/",
|
||||
"memoryLimit": 1073741824
|
||||
}
|
30
Dockerfile
Normal file
30
Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
||||
FROM cloudron/base:5.0.0
|
||||
|
||||
RUN mkdir -p /app/code /app/data /tmp/data
|
||||
|
||||
# Install OpenObserve binary
|
||||
RUN curl -L https://github.com/openobserve/openobserve/releases/download/v0.10.9/openobserve-v0.10.9-linux-amd64.tar.gz -o /tmp/openobserve.tar.gz \
|
||||
&& tar -xzf /tmp/openobserve.tar.gz -C /app/code \
|
||||
&& chmod +x /app/code/openobserve \
|
||||
&& rm /tmp/openobserve.tar.gz
|
||||
|
||||
# Copy configuration files
|
||||
COPY start.sh /app/code/start.sh
|
||||
COPY nginx.conf /etc/nginx/sites-available/default
|
||||
COPY logo.png /app/code/logo.png
|
||||
|
||||
# Set permissions
|
||||
RUN chmod +x /app/code/start.sh \
|
||||
&& chown -R cloudron:cloudron /app/code /app/data /tmp/data
|
||||
|
||||
# Initialize data directory structure
|
||||
RUN mkdir -p /tmp/data/logs /tmp/data/db /tmp/data/wal /tmp/data/stream_stats \
|
||||
&& chown -R cloudron:cloudron /tmp/data
|
||||
|
||||
# Health check
|
||||
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
||||
CMD curl -f http://localhost:5080/healthz || exit 1
|
||||
|
||||
EXPOSE 5080 5081
|
||||
|
||||
CMD [ "/app/code/start.sh" ]
|
17
POSTINSTALL
Normal file
17
POSTINSTALL
Normal file
@@ -0,0 +1,17 @@
|
||||
OpenObserve is now installed and ready to use!
|
||||
|
||||
Initial Login Credentials:
|
||||
- Email: admin@{CLOUDRON_APP_DOMAIN}
|
||||
- Password: openobserve123
|
||||
|
||||
IMPORTANT: Please change the default password immediately after first login for security.
|
||||
|
||||
Features:
|
||||
- Observability platform for logs, metrics, and traces
|
||||
- Real-time data ingestion and analysis
|
||||
- Built-in alerting and visualization
|
||||
- OIDC authentication integrated with Cloudron
|
||||
|
||||
Access your OpenObserve instance at: {CLOUDRON_APP_ORIGIN}
|
||||
|
||||
For documentation and help, visit: https://openobserve.ai/docs/
|
1
logo.png
Normal file
1
logo.png
Normal file
@@ -0,0 +1 @@
|
||||
iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==
|
84
nginx.conf
Normal file
84
nginx.conf
Normal file
@@ -0,0 +1,84 @@
|
||||
server {
|
||||
listen 5080 default_server;
|
||||
listen [::]:5080 default_server;
|
||||
|
||||
root /app/code;
|
||||
index index.html;
|
||||
|
||||
client_max_body_size 100m;
|
||||
client_body_timeout 600s;
|
||||
client_header_timeout 600s;
|
||||
proxy_connect_timeout 600s;
|
||||
proxy_send_timeout 600s;
|
||||
proxy_read_timeout 600s;
|
||||
|
||||
# Disable access logs for static assets
|
||||
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
|
||||
expires 1y;
|
||||
add_header Cache-Control "public, immutable";
|
||||
access_log off;
|
||||
try_files $uri @backend;
|
||||
}
|
||||
|
||||
# OIDC callback route
|
||||
location /api/v1/auth/oidc/callback {
|
||||
proxy_pass http://127.0.0.1:5080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Port $server_port;
|
||||
}
|
||||
|
||||
# API routes
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:5080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Port $server_port;
|
||||
|
||||
# WebSocket support
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
|
||||
# Health check endpoint
|
||||
location /healthz {
|
||||
proxy_pass http://127.0.0.1:5080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
# Default backend for all other requests
|
||||
location / {
|
||||
try_files $uri @backend;
|
||||
}
|
||||
|
||||
location @backend {
|
||||
proxy_pass http://127.0.0.1:5080;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Port $server_port;
|
||||
|
||||
# WebSocket support
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
|
||||
# Security headers
|
||||
add_header X-Frame-Options DENY;
|
||||
add_header X-Content-Type-Options nosniff;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header Referrer-Policy "strict-origin-when-cross-origin";
|
||||
}
|
77
start.sh
Normal file
77
start.sh
Normal file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
echo "Starting OpenObserve Cloudron app..."
|
||||
|
||||
# Initialize /app/data from /tmp/data on first run
|
||||
if [ ! -d "/app/data/logs" ]; then
|
||||
echo "Initializing data directory..."
|
||||
cp -r /tmp/data/* /app/data/
|
||||
fi
|
||||
|
||||
# Set proper permissions
|
||||
chown -R cloudron:cloudron /app/data
|
||||
|
||||
# Generate default configuration if it doesn't exist
|
||||
if [ ! -f "/app/data/config.yaml" ]; then
|
||||
echo "Creating default configuration..."
|
||||
cat > /app/data/config.yaml << EOF
|
||||
# OpenObserve configuration for Cloudron
|
||||
common:
|
||||
data_dir: "/app/data"
|
||||
data_wal_dir: "/app/data/wal"
|
||||
data_stream_dir: "/app/data/stream_stats"
|
||||
local_mode: true
|
||||
local_mode_storage: "disk"
|
||||
|
||||
http:
|
||||
port: 5080
|
||||
|
||||
grpc:
|
||||
port: 5081
|
||||
|
||||
auth:
|
||||
root_user_email: "${ZO_ROOT_USER_EMAIL:-admin@${CLOUDRON_APP_DOMAIN:-localhost}}"
|
||||
ext_auth_providers: "oidc"
|
||||
|
||||
log:
|
||||
level: "info"
|
||||
EOF
|
||||
chown cloudron:cloudron /app/data/config.yaml
|
||||
fi
|
||||
|
||||
# Set environment variables for OpenObserve
|
||||
export ZO_DATA_DIR="/app/data"
|
||||
export ZO_LOCAL_MODE_STORAGE="disk"
|
||||
export ZO_WEB_URL="${CLOUDRON_APP_ORIGIN}"
|
||||
export ZO_HTTP_PORT="5080"
|
||||
export ZO_GRPC_PORT="5081"
|
||||
export ZO_ROOT_USER_EMAIL="${ZO_ROOT_USER_EMAIL:-admin@${CLOUDRON_APP_DOMAIN:-localhost}}"
|
||||
export ZO_ROOT_USER_PASSWORD="${ZO_ROOT_USER_PASSWORD:-openobserve123}"
|
||||
export ZO_LOG_LEVEL="info"
|
||||
|
||||
# OIDC Configuration if available
|
||||
if [ -n "${CLOUDRON_OIDC_IDENTIFIER:-}" ]; then
|
||||
echo "Configuring OIDC authentication..."
|
||||
export ZO_OIDC_ENABLED="true"
|
||||
export ZO_OIDC_CLIENT_ID="${CLOUDRON_OIDC_CLIENT_ID}"
|
||||
export ZO_OIDC_CLIENT_SECRET="${CLOUDRON_OIDC_CLIENT_SECRET}"
|
||||
export ZO_OIDC_ISSUER_URL="${CLOUDRON_OIDC_IDENTIFIER}"
|
||||
export ZO_OIDC_REDIRECT_URL="${CLOUDRON_APP_ORIGIN}/api/v1/auth/oidc/callback"
|
||||
fi
|
||||
|
||||
# SMTP Configuration
|
||||
if [ -n "${CLOUDRON_MAIL_SMTP_SERVER:-}" ]; then
|
||||
echo "Configuring SMTP..."
|
||||
export ZO_SMTP_HOST="${CLOUDRON_MAIL_SMTP_SERVER}"
|
||||
export ZO_SMTP_PORT="${CLOUDRON_MAIL_SMTP_PORT}"
|
||||
export ZO_SMTP_USERNAME="${CLOUDRON_MAIL_SMTP_USERNAME}"
|
||||
export ZO_SMTP_PASSWORD="${CLOUDRON_MAIL_SMTP_PASSWORD}"
|
||||
fi
|
||||
|
||||
echo "Starting nginx..."
|
||||
/usr/sbin/nginx
|
||||
|
||||
echo "Starting OpenObserve..."
|
||||
exec /app/code/openobserve
|
Reference in New Issue
Block a user