1. System Overview
This developer manual covers the specifications, directories, and configuration architectures for the system utilities hosted on somin.site. All tools run on an AWS Lightsail instance configured with a Bitnami LAMP stack.
Environment Details
| Component | Value / Specification | Description |
|---|---|---|
| Server Host IP | 43.203.5.167 |
AWS Lightsail Instance IP (Seoul Region) |
| Operating System | Debian GNU/Linux 12 (bookworm) |
Host Linux OS |
| Web Server | Apache HTTPD 2.4 |
Bitnami Managed Web Server |
| Database Engine | MariaDB 10.11 |
MySQL Compatible DBMS |
| Language Runtimes | PHP 8.2 • Python 3.11.2 |
Server-side scripting environment |
2. SMTP Server Status Dashboard
The Server Dashboard collects real-time telemetry metrics and schedules daily status reports sent to administrators via email.
Dashboard Specifications
Deployment URL: https://somin.site/SMTP/server_stat.php
Primary Script: /opt/bitnami/apache2/htdocs/SMTP/server_stat.php
| Feature | Implementation Detail |
|---|---|
| System Telemetry | Parsed from /proc/stat (CPU), /proc/meminfo (RAM), disk_total_space (Disk), and pgrep process queries (Services). |
| Daily Cron Job | Daily report triggered at 7:00 AM KST (Asia/Seoul timezone) via CLI PHP execution. |
| SMTP Integration | Uses Gmail SMTP relay (smtp.gmail.com:587) with SSL/STARTTLS via custom send_report.py helper. |
Cron Configuration
The cron schedule is registered under the bitnami system user and logs executions inside a secure log file:
0 7 * * * /opt/bitnami/php/bin/php /opt/bitnami/apache2/htdocs/SMTP/server_stat.php cron jvisualschool@gmail.com >> /opt/bitnami/apache2/htdocs/SMTP/.htcron.log 2>&1
3. SMS Sending Console
A web console for sending SMS and LMS messages using the SOLAPI REST API. All sending attempts are logged in the local MariaDB database.
Console Specifications
Deployment URL: https://somin.site/SMS/
Primary Script: /opt/bitnami/apache2/htdocs/SMS/index.php
| Parameter | Value | Description |
|---|---|---|
| SOLAPI API Key | NCSZYWVGNQFSZYXZ |
HMAC signature authentication key |
| Registered Sender | 010-2208-4972 |
Legally verified outbound caller ID |
| IP Authorization | 43.203.5.167/32 • 219.240.49.250/32 |
Allowed sender IPs configured in SOLAPI console |
SOLAPI REST HMAC Signature Code (PHP)
Authentications are handled using direct curl connections with HMAC-SHA256 signature headers, bypassing heavy SDK dependencies:
$apiKey = 'NCSZYWVGNQFSZYXZ';
$apiSecret = 'RQDJTWEWUP8D7VYMPSMQPYWHOHGNXGML';
$date = gmdate('Y-m-d\TH:i:s\Z');
$salt = bin2hex(random_bytes(16));
$signature = hash_hmac('sha256', $date . $salt, $apiSecret);
$authHeader = sprintf(
"HMAC-SHA256 apiKey=%s, date=%s, salt=%s, signature=%s",
$apiKey,
$date,
$salt,
$signature
);
// Injected into HTTP headers as: Authorization: $authHeader
4. Database Schema
Database logs are stored in the local MariaDB server inside the ADMIN database schema.
MySQL Connection Details
Host: localhost Database Name: ADMIN Username: root Password: 9H+mJ.VE0dgw
SMS Logs Table Schema
Table definition for sms_logs used to audit outbound messages:
CREATE TABLE IF NOT EXISTS sms_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
sender VARCHAR(20) NOT NULL,
receiver VARCHAR(20) NOT NULL,
message TEXT NOT NULL,
status VARCHAR(20) NOT NULL,
sent_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
error_message TEXT DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
5. Security & Access Control
Critical security layers implemented on somin.site utilities:
Session-Based Authentication
Both SMTP and SMS consoles require session authorization. The administrator password is set to Gohome82!. SESSIDs are managed natively by PHP sessions.
Apache Access Rules for Sensitive Configurations
Sensitive configuration files and logs are prefixed with .ht*. By default, Apache blocks all external HTTP access to files starting with .ht (e.g. .htcrontab, .htcron.log) protecting credential dumps from unauthorized web discovery, while allowing PHP to read them locally.
| Protected File | Purpose | HTTP Access |
|---|---|---|
/SMTP/.htcrontab |
Stores the raw crontab configuration for display. | BLOCKED (403 Forbidden) |
/SMTP/.htcron.log |
Stores cron execution logs. | BLOCKED (403 Forbidden) |