Boards API Guide

boards.pig.kr is a notice board and content publishing app. It can be used by admins and staff to write public notices, updates, and other posts, and it can also expose selected content through a simple API.

This guide is for developers, site owners, and integrators who want to read data from boards.pig.kr and use it in another app such as www.pig.kr.

What boards.pig.kr does

  • Provides a web interface for writing and managing posts.
  • Supports public and non-public posts.
  • Supports categories, pinned posts, comments, and attachments.
  • Can expose selected public content through API endpoints.

What the API is for

The API allows another app or service to fetch structured data from boards.pig.kr without scraping HTML pages.

  • Use it to display notice items on another site.
  • Use it to fetch the latest public notify posts.
  • Use it to build widgets, banners, dashboards, or feed readers.

Base URLs

  • https://boards.pig.kr/boards/ — main board UI
  • https://boards.pig.kr/api/ — browsable API root
  • https://boards.pig.kr/api/notify/ — public notify feed

How the notify feed works

The notify feed is meant for public notices that should be reused by another app. It returns posts that are:

  • public
  • in the Notify category
  • ordered with pinned posts first, then newest posts first

This makes it suitable for homepage notice sections, banners, and simple announcement lists.

Public notify endpoint

/api/notify/ returns public posts from the Notify category in JSON format.

Example request

curl https://boards.pig.kr/api/notify/

Example response

{
  "count": 1,
  "results": [
    {
      "id": 7,
      "title": "Notify test",
      "content": "This is a sample notify post.",
      "excerpt": "This is a sample notify post.",
      "category": "Notify",
      "author": "pg@pig.kr",
      "is_pinned": true,
      "created_at": "2026-08-01T02:35:26.328730+00:00",
      "url": "/boards/7/"
    }
  ]
}

Field meanings

  • id — internal post ID on boards.pig.kr
  • title — post title
  • content — full stored content
  • excerpt — shortened preview text
  • category — category display name
  • author — post author
  • is_pinned — whether the post is pinned
  • created_at — creation timestamp in ISO format
  • url — relative path to the full post page

How another site should use it

A consumer such as www.pig.kr can fetch /api/notify/, read the JSON, and display the latest notice items.

  • Fetch server-side if possible.
  • Cache results for a short period if traffic is high.
  • Prefix relative URLs with https://boards.pig.kr when linking to the full post.

Notes

  • The notify feed is read-only.
  • Only public posts in the Notify category are included.
  • If there are no matching posts, the endpoint returns count: 0 and an empty list.

Recommended publishing model

The recommended setup is to keep boards.pig.kr as the place where notices are written and managed, and let www.pig.kr only read and display them.

  • www.pig.kr only reads and displays notices from boards.pig.kr.
  • Staff who need to publish notices log in to boards.pig.kr directly.
  • They create or edit posts there in the Notify category.
  • www.pig.kr consumes the public notify feed.

Responsibility split

  • boards.pig.kr = authoring and notice management
  • www.pig.kr = presentation

In this model, a separate write API is not needed if humans publish notices directly in boards.pig.kr.

UFW Blocklist Extraction

Extract blocked IPv4 addresses from /etc/ufw/user.rules into a clean, deduplicated text file.

Extract blocked IPs

sudo grep -- '-j DROP' /etc/ufw/user.rules \
  | grep -oP '(?<=-s )\d{1,3}(?:\.\d{1,3}){3}' \
  | sort -u > /root/ufw-blocklist.txt

Verify the blocklist

wc -l /root/ufw-blocklist.txt
head /root/ufw-blocklist.txt

The resulting file contains a clean, deduplicated list of blocked IP addresses. The IPs can then be transferred to another server and applied through the ipteller-ufw-deny script.

Import / Apply UFW Blocklist

Apply a previously exported IP blocklist to another server using the ipteller-ufw-deny script.

Import/apply

while IFS= read -r IP; do
    /usr/local/bin/ipteller-ufw-deny "$IP"
done < /root/ufw-blocklist.txt

Each IP is processed individually. Safe IPs defined in ipteller-ufw-deny are skipped, while other IPs are added to UFW as deny rules. Existing UFW rules are not duplicated.

Naver Pay integration information

Please provide the official Naver Pay 결제형 integration documentation or SDK snippet for:

  • Payment-window JavaScript initialization
  • Reservation endpoint, headers, request fields, and response fields
  • Approval endpoint and callback parameters
  • Cancellation endpoint

Do not share client secrets. With the official API details, the payment client, services, and checkout JavaScript can be implemented safely.