title: WordPress CMS
name: wordpress-cms
description: WordPress CMS setup on Docker + Blocksy theme + MCP integration for autonomous content publishing
session: "2026-06-14 wordpress-setup"
decision: "CMS 워크플로우 + blocksy 무료로 커스텀 폰트/디자인 가능 → Quartz 대체"
created: 2026-06-14
updated: 2026-06-14
WordPress CMS
WordPress + Docker + Blocksy + MCP integration for YOUR_DOMAIN.
Docker Setup
services:
db:
image: mysql:8.0
container_name: YOUR_DOMAIN-db
ports: ["3307:3306"]
volumes:
- /Volumes/YOUR_NAS/docker/wordpress/db:/var/lib/mysql
wordpress:
image: wordpress:6.7-php8.3-apache
container_name: YOUR_DOMAIN-wp
depends_on: [db]
ports: ["8080:80"]
volumes:
- /Volumes/YOUR_NAS/docker/wordpress/wp-content:/var/www/html/wp-content
- ~/.{{AGENT_NAME_LOWER}}/wordpress/wp-content/plugins:/var/www/html/wp-content/plugins
- ~/.{{AGENT_NAME_LOWER}}/wordpress/wp-content/themes:/var/www/html/wp-content/themes
pw 저장: ~/.{{AGENT_NAME_LOWER}}/wordpress/.wp-env (chmod 600)
Blocksy Theme
Blocksy is the active theme. Free version supports:
- Custom Fonts upload (Noto Sans KR, Noto Serif KR) — included free
- Header/Footer Builder — drag and drop
- Global Color Palette — 10-color system with bronze accent (#8b7355)
- Blog Layout — card grid, list, masonry
- Typography — per-element font/size/line-height
- Dark Mode — built-in
Setup via wp-cli
docker exec YOUR_DOMAIN-wp wp --allow-root theme install blocksy --activate
docker exec YOUR_DOMAIN-wp wp --allow-root plugin install blocksy-companion --activate
Custom Fonts (Google Fonts)
MU plugin at wp-content/mu-plugins/YOUR_PREFIX-fonts.php:
add_action("wp_enqueue_scripts", function() {
wp_enqueue_style("YOUR_PREFIX-fonts",
"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&family=Noto+Serif+KR:wght@400;600;700&family=JetBrains+Mono:wght@400;700&display=swap"
);
});
Color Palette (Blocksy)
$palette = array(
array("color" => "#1c1c1a", "id" => "color1"),
array("color" => "#6b6b68", "id" => "color2"),
array("color" => "#9b9b97", "id" => "color3"),
array("color" => "#ffffff", "id" => "color4"),
array("color" => "#fafaf8", "id" => "color5"),
array("color" => "#f2f2ee", "id" => "color6"),
array("color" => "#e8e7e4", "id" => "color7"),
array("color" => "#8b7355", "id" => "color8"),
array("color" => "#7a6349", "id" => "color9"),
array("color" => "#d4c4b0", "id" => "color10"),
);
set_theme_mod("blocksy_color_palette", $palette);
.htaccess
WordPress Docker 이미지는 .htaccess rewrite rules를 자동 생성하지 않음. 수동 설정 필수:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
WordPress MCP Server
Custom MCP server for autonomous agent→WordPress interaction.
Path: ~/.{{AGENT_NAME_LOWER}}/scripts/wordpress-mcp-server.js
Config: mcp_servers.wordpress in ~/.hermes/config.yaml
Backend: Node.js wrapping docker exec YOUR_DOMAIN-wp wp --allow-root via STDIO JSON-RPC 2.0
Available Tools
| Tool | Params | Returns |
|---|
| create_post | title, content, category, tags, status | Post ID |
| upload_media | file_path (inside container), title | Media ID |
| list_posts | posts_per_page, status | JSON array |
| get_post | id | JSON |
| create_category | name, slug | Term ID |
| set_site_option | key, value | Success msg |
| set_theme_mod | key, value (JSON string) | Success msg |
Test
printf '{"jsonrpc":"2.0","id":1,"method":"tools/list"}\n' | node ~/.{{AGENT_NAME_LOWER}}/scripts/wordpress-mcp-server.js
Huly MCP Integration
Huly workspace "YOUR_WORKSPACE" with MCP server (@bgx4k3p/huly-mcp-server@latest).
81 tools available including issue management, project management, team management.
Key tools for content workflow:
create_issue — 제목/설명/담당자/프로젝트 지정
list_issues — 필터링 + 커서 페이지네이션
search_issues — 풀텍스트 검색
get_issue — 상세 내용 + 상태
update_issue — 상태 변경 (e.g. "Todo" → "Done")
list_statuses — 프로젝트별 상태 workflow 조회
Site Structure
| Page | URL | Content |
|---|
| Home | / | 최근 글 + 프로젝트 소개 |
| Blog | /blog/ | 포스트 목록 (카드 그리드) |
| About | /about/ | 사이트 소개 |
Categories: build-log (Build Log), ai-tools (AI & Tools), systems (Systems), creative (Creative)
wp-cli Cheatsheet
docker exec YOUR_DOMAIN-wp wp --allow-root post create --post_title="T" --post_content="C" --post_status=publish --post_category=systems
docker exec YOUR_DOMAIN-wp wp --allow-root theme install <slug> --activate
docker exec YOUR_DOMAIN-wp wp --allow-root plugin install <slug> --activate
docker exec YOUR_DOMAIN-wp wp --allow-root option update blogname "YOUR_SITE_NAME"
docker exec YOUR_DOMAIN-wp wp --allow-root rewrite flush
docker exec YOUR_DOMAIN-wp wp --allow-root media import /path/to/file.png --title="Logo"
docker exec YOUR_DOMAIN-wp wp --allow-root eval 'echo get_option("blogname");'
docker exec YOUR_DOMAIN-wp wp --allow-root eval-file /tmp/setup.php
Path Pitfalls
- All paths in wp-cli commands inside container are container paths (/var/www/html/...)
- Host paths need
docker cp before docker exec
.htaccess must be manually written (Docker image bug)
- Always use
--allow-root with wp-cli inside container
- env vars (DOCKER_HOST) needed when colima manages Docker