APEX
n8n
Discord
[Your Blog Post Title Goes Here]
[One sentence — what the reader will build or learn.]
[Opening paragraph. Describe the problem — what was broken, annoying, or missing? Be direct and personal.]
[Second paragraph. Briefly introduce the solution and what this article covers.]
💡
Note: This is a follow-up to [Link to Part 1]. Initial setup — Docker, n8n, Oracle DB schema — is covered there.
How It Works
[High-level concept before diving into steps.]
Event A — What happens and what gets triggered
Event B — What happens and what gets triggered
Event C — What happens and what gets triggered
[Edge cases or important notes before the walkthrough.]
The Stack
| Component | Technology | Role |
|---|---|---|
| BOT Discord Bot | Node.js · Discord.js v14 | [What it does] |
| n8n Workflow | n8n · Docker | [What it does] |
| DB Database | Oracle Database | [What it does] |
| UI Dashboard | Oracle APEX | [What it does] |
Step 01
1
[Step Title — e.g. Docker Stack in Portainer]
[Short subtitle or tool name — e.g. node:20-alpine · Docker Compose]
[Short intro for this step — what you're doing and why.]
[Explanation after the image — what to look at, what settings matter.]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: "3.8"
services:
my-app:
image: node:20-alpine
container_name: my-app
restart: always
working_dir: /app
environment:
APP_PORT: "3000"
DB_HOST: "localhost"
DB_NAME: "mydb"
ports:
- "3000:3000"
⚠️
Security: Never put real tokens or passwords in config files. Always use environment variables.
Step 02
2
[Step Title — e.g. The n8n Workflow]
[Subtitle — e.g. Webhook · Switch · Oracle DB]
[Description of this step.]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* Example: card component */
.card {
background: #ffffff;
border-radius: 10px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
padding: 1.5rem 2rem;
max-width: 480px;
margin: 2rem auto;
font-family: 'Segoe UI', sans-serif;
}
.card-title {
font-size: 1.3rem;
font-weight: 700;
color: #1a1a2e;
margin-bottom: 0.5rem;
}
Step 03
3
[Step Title — e.g. Oracle APEX Dashboard]
[Subtitle — e.g. PL/SQL · Dynamic Content · Charts]
[Description.]
1
2
3
4
5
6
7
8
9
10
11
12
-- Example: log a user event
CREATE TABLE user_events (
event_id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
user_id NUMBER NOT NULL,
event_type VARCHAR2(50) NOT NULL,
event_time TIMESTAMP DEFAULT SYSTIMESTAMP,
payload CLOB
);
INSERT INTO user_events (user_id, event_type, payload)
VALUES (42, 'LOGIN', '{"ip":"192.168.1.1"}');
✅
Result: [Describe what the user should see or be able to verify after this step.]
Final Thoughts
[Wrap up. What did you build, what was the hardest part, what comes next.]