FastComments.com

FastComments ์˜จํ”„๋ ˆ๋ฏธ์Šค ํ˜ธ์ŠคํŒ…

FastComments๋Š” ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ๋Š” ์šฐ๋ฆฌ๊ฐ€ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ท€ํ•˜๋ฅผ ์œ„ํ•ด.

ํ•˜์ง€๋งŒ ์ผ๋ถ€ ๊ณ ๊ฐ์€ ์ •๋ณด๋ฅผ ํด๋ผ์šฐ๋“œ์— ๋ณด๊ด€ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์˜จํ”„๋ ˆ๋ฏธ์Šค์— ํ˜ธ์ŠคํŒ…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” ๊ทธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

ํฌํ•จ๋œ ํ•ญ๋ชฉ Internal Link

FastComments On Prem์€ ๋‹น์‚ฌ์˜ ๋ชจ๋“  ๋ชจ๋”๋ ˆ์ด์…˜ ๋ฐ ๊ด€๋ฆฌ์ž ๋„๊ตฌ๋ฅผ ํฌํ•จํ•œ ๋ผ์ด๋ธŒ ๋Œ“๊ธ€ ์†”๋ฃจ์…˜์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋ฉฐ, ๊ท€ํ•˜์˜ ์ž์ฒด ํ•˜๋“œ์›จ์–ด์—์„œ ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” ๊ท€ํ•˜๊ฐ€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ œ์–ด๊ถŒ์„ ๊ฐ€์ง€๋ฉฐ, ๋Œ“๊ธ€ ์‹œ์Šคํ…œ์„ ๋กœ์ปฌ LAN ๋˜๋Š” ๊ธฐ์—… ๋„คํŠธ์›Œํฌ๋กœ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค Internal Link

ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ

์˜จํ”„๋ ˆ๋ฏธ์Šค(์˜จํ”„๋ ˜) ํ™˜๊ฒฝ์˜ ๊ฒฝ์šฐ, FastComments๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ๋งŒ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐฐํฌ๋ฅผ ๋‹จ์ˆœํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๋Š” Docker ์ด๋ฏธ์ง€๋กœ ์ œ๊ณต๋˜๋ฉฐ ์–ด๋–ค ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์œผ๋กœ๋„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ MongoDB๋Š” ์ง์ ‘ ์šด์˜ํ•  ์ˆ˜ ์žˆ๊ณ  AWS DocumentDB๋‚˜ MongoDB Atlas์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ œ๊ณต์—…์ฒด์—์„œ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

FastComments๋Š” ํ˜„์žฌ MongoDB 7์—์„œ ํ…Œ์ŠคํŠธ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ฐฐํฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด DocumentDB ํ˜ธํ™˜์„ฑ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค ํฌ๊ธฐ

FastComments๋Š” ์ƒ๋‹นํžˆ ์ตœ์ ํ™”๋˜์–ด ์žˆ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด๋Š” ๋‚ฎ์€ P99๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํฐ ๋จธ์‹ ์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ฐฐ์น˜ ๋ฐ cron ์ž‘์—…์€ ์ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ‘œ๋Š” ํฌ๊ธฐ ๊ฒฐ์ •์„ ๋„์™€์ค๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค

๋™์‹œ ์‚ฌ์šฉ์ž ์ด ํด๋Ÿฌ์Šคํ„ฐ CPU ์ˆ˜ ์ด ํด๋Ÿฌ์Šคํ„ฐ ๋ฉ”๋ชจ๋ฆฌ
100 1 256mb
1K 2 512mb
10K 8 1gb
100K 32 8gb
1M 64 64gb

์˜ˆ๋ฅผ ๋“ค์–ด, ์ดˆ๋‹น ์•ฝ 100๊ฐœ์˜ ๋Œ“๊ธ€ ์Šค๋ ˆ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ์ผ ์ฝ”์–ด๋Š” ๋ณดํ†ต 250mb RSS๋ฅผ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌ๊ธฐ ์‚ฐ์ •์€ ์ž‘์—… ์ง‘ํ•ฉ ํฌ๊ธฐ(ํŠน์ • ์‹œ์ ์— ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ์ดํ„ฐ ์–‘)์™€ ๋™์‹œ ์š”์ฒญ ์ˆ˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

FastComments๋Š” Mongo์— ๋Œ€ํ•ด ๋น„๊ต์  ์นœ์ ˆํ•œ ํŽธ์œผ๋กœ, ํ•ซ ์ฟผ๋ฆฌ์—๋Š” ์ธ๋ฑ์Šค ํžŒํŠธ(index hints), ์ŠคํŠธ๋ฆฌ๋ฐ ์ปค์„œ(streaming cursors)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์šด์ŠคํŠธ๋ฆผ ์‹œ์Šคํ…œ์˜ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์˜์—ญ์—์„œ ๋™์‹œ์„ฑ ์ œํ•œ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค ํฌ๊ธฐ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ๊ฐ€์ด๋“œ๋ผ์ธ์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ : ์ด๊ฒƒ์€ ์ธ์Šคํ„ด์Šค๋‹น ๋ฆฌ์†Œ์Šค์ด๋ฉฐ, ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ด ๋ฆฌ์†Œ์Šค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋™์‹œ ์‚ฌ์šฉ์ž ์ €์žฅ๋œ ๋Œ“๊ธ€ ์ˆ˜ ์ธ์Šคํ„ด์Šค๋‹น CPU ์ˆ˜ ์ธ์Šคํ„ด์Šค๋‹น ๋ฉ”๋ชจ๋ฆฌ
100 1k 1 256mb
1K 5k 2 512mb
10K 100k 8 2gb
100K 500k 16 8gb
1M 5M 32 32gb

์œ„ ํ‘œ๋Š” ๋ณด์ˆ˜์ ์ธ ์ถ”์ •์น˜์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ํŽ˜์ด์ง€ ํฌ๊ธฐ, ๋Œ“๊ธ€๋Ÿ‰ ๋“ฑ ํŠน์ • ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ • Internal Link

FastComments๋Š” ๊ตฌ์„ฑ์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ชฉ๋ก์€ ์˜จํ”„๋ ˜(On-Prem)์— ๊ด€๋ จ๋œ ๋ชจ๋“  ์ง€์› ๋ณ€์ˆ˜๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Variable Default Info Required Examples or Valid Values
NODE_ENV ํ™˜๊ฒฝ ํƒ€์ž…. ์˜ˆ production, dev
MONGO_URI DB ์—ฐ๊ฒฐ URI. ์˜ˆ
MONGO_ENABLE_SSL false ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•  ๋•Œ SSL ์‚ฌ์šฉ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค true, false
MONGO_ENABLE_SSL_VALIDATE false Mongo์— ์—ฐ๊ฒฐํ•  ๋•Œ CA์— ๋Œ€ํ•ด ์ธ์ฆ์„œ๋ฅผ ๊ฒ€์ฆํ•˜๋„๋ก ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค true, false
MONGO_SSL_CA Mongo SSL CA pem ํŒŒ์ผ. ์•„๋‹ˆ์˜ค /path/to/some-cert.pem
ADMIN_NOTIFICATIONS_EMAIL ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ ๊ด€๋ จ ์•Œ๋ฆผ์„ ๋ฐ›์„ ์ด๋ฉ”์ผ ์ฃผ์†Œ. ์•„๋‹ˆ์˜ค admin-group@bigcorp.com
IP_HASH_SALT IP ์ฃผ์†Œ ํ•ด์‹œ๋ฅผ ์œ„ํ•œ ์†”ํŠธ. ์˜ˆ
SESSION_SECRET ์„ธ์…˜ ์„œ๋ช…์— ์‚ฌ์šฉ๋˜๋Š” ํ‚ค. ์˜ˆ
SESSION_STORE_SECRET ์Šคํ† ๋ฆฌ์ง€์— ์žˆ๋Š” ์„ธ์…˜์„ ์„œ๋ช…/ํ•ด์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค. SESSION_SECRET์™€ ๋‹ฌ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ
HOSTNAME FastComments๊ฐ€ ๋ฐฐํฌ๋œ ํ˜ธ์ŠคํŠธ๋ช…(๊ด€๋ฆฌ ๋Œ€์‹œ๋ณด๋“œ ๋“ฑ). ํฌํŠธ๋‚˜ ํ”„๋กœํ† ์ฝœ์„ ํฌํ•จํ•˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ example.com
HOST_ADDR FastComments๊ฐ€ ๋ฐฐํฌ๋œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ URI(๊ด€๋ฆฌ ๋Œ€์‹œ๋ณด๋“œ ๋“ฑ). ์˜ˆ https://example.com
EMAIL_CONFIG_PATH ์ด๋ฉ”์ผ ๊ตฌ์„ฑ(SMTP, ๋„๋ฉ”์ธ/์ œ๊ณต์ž ๋งคํ•‘ ๋“ฑ)์ด ์œ„์น˜ํ•œ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๊ฒฝ๋กœ. ์˜ˆ /my/config.json
EMAIL_DEFAULT_FROM_NAME FastComments Robot ์ด๋ฉ”์ผ "From Name" ํ—ค๋”. ์•„๋‹ˆ์˜ค My Company Name
EMAIL_DEFAULT_FOOTER_LOGO /images/logo-32-2020-01.png ์ด๋ฉ”์ผ ๋ฐ”๋‹ฅ๊ธ€ ๋กœ๊ณ . ์•„๋‹ˆ์˜ค https://exmaple.com/footer.png
EMAIL_DEFAULT_TRANSPORT EMAIL_CONFIG_PATH์˜ "defaultTransport"์— ๋Œ€ํ•œ ์˜ค๋ฒ„๋ผ์ด๋“œ. ๋™์ผํ•œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค myTransportName
ON_PREM_TENANT_ID fastcomments.com์˜ ๊ณ„์ • ID. ๋ผ์ด์„ ์Šค ํ‚ค๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
ON_PREM_LICENSE_KEY ์˜จํ”„๋ ˜ ๋ผ์ด์„ ์Šค ํ‚ค. ์•„๋‹ˆ์˜ค
GIPHY_API_KEY Giphy API ํ‚ค. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด gif ์„ ํƒ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ตฌ์„ฑ ๊ทœ์น™์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
GIPHY_DEFAULT_RATING pg giphy ํ†ตํ•ฉ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์œ„์ ฏ ์ปค์Šคํ„ฐ๋งˆ์ด์ œ์ด์…˜ ๊ทœ์น™์œผ๋กœ๋„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค g, pg, pg-13, r
OPENAI_SECRET_KEY ์„ ํƒ์  GPT ๊ธฐ๋ฐ˜ ์ŠคํŒธ ๊ฐ์ง€ ๊ฐ™์€ OpenAI ๊ธฐ๋ฐ˜ ๊ธฐ๋Šฅ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
CDN_HOST_ADDR ์—์…‹์„ ๊ฐ€์ ธ์˜ฌ ํ˜ธ์ŠคํŠธ๋ช…. ๊ธฐ๋ณธ๊ฐ’์€ HOSTNAME์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค example.com
LARGE_FILE_HOST_ADDR ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ(๋‚ด๋ณด๋‚ด๊ธฐ ๋“ฑ)์„ ๊ฐ€์ ธ์˜ฌ ํ˜ธ์ŠคํŠธ๋ช…. ๊ธฐ๋ณธ๊ฐ’์€ CDN_HOST_ADDR์˜ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค example.com
LARGE_FILE_LOCATION_TYPE local_disk ๋‚ด๋ณด๋‚ด๊ธฐ์™€ ๊ฐ™์€ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์ €์žฅํ•  ์œ„์น˜. ์•„๋‹ˆ์˜ค local_disk, s3
FROM_EMAIL_HOST ์ด๋ฉ”์ผ์ด ๋ฐœ์†ก๋˜๋Š” ํ˜ธ์ŠคํŠธ๋ช…. ์•„๋‹ˆ์˜ค example.com
COOKIE_ID fastcomments.sid fastcomments ์ฟ ํ‚ค์˜ ์ด๋ฆ„. ์•„๋‹ˆ์˜ค
COOKIE_HOSTNAME .fastcomments.com ์ฟ ํ‚ค์˜ "hostname" ํ•„๋“œ ๊ฐ’. ์ ‘๋‘์‚ฌ๋กœ ์ ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค .example.com
S3_ACCESS_KEY ์‚ฌ์šฉ์ž ํŒŒ์ผ ์—…๋กœ๋“œ, ์•„๋ฐ”ํƒ€ ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ •์˜๋˜์ง€ ์•Š์œผ๋ฉด ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๊ธฐ๋ณธ์ž…๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
S3_SECRET_KEY ์‚ฌ์šฉ์ž ํŒŒ์ผ ์—…๋กœ๋“œ, ์•„๋ฐ”ํƒ€ ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
S3_REGION ์‚ฌ์šฉ์ž ํŒŒ์ผ ์—…๋กœ๋“œ, ์•„๋ฐ”ํƒ€ ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
S3_BUCKET ์‚ฌ์šฉ์ž ํŒŒ์ผ ์—…๋กœ๋“œ, ์•„๋ฐ”ํƒ€ ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
S3_HOST ์‚ฌ์šฉ์ž ํŒŒ์ผ ์—…๋กœ๋“œ, ์•„๋ฐ”ํƒ€ ๋“ฑ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
CACHE_DIR DB๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ์˜ ์„ ํƒ์  ์˜คํ”„๋ผ์ธ ์บ์‹œ๋ฅผ ์ €์žฅํ•  ์œ„์น˜. ์ƒ์œ„ 100๊ฐœ ๋Œ“๊ธ€ ์Šค๋ ˆ๋“œ๋กœ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค
BACKUP_DIR DB๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์œ„์น˜. DB๊ฐ€ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅํ•  ๋•Œ ๋Œ“๊ธ€์ด ์ œ์ถœ๋˜๋ฉด ์—ฌ๊ธฐ์— ์ €์žฅ๋˜๋ฉฐ ๋‚˜์ค‘์— ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์•„๋‹ˆ์˜ค

๋ชจ๋“  ๋„๋ฉ”์ธ ๊ด€๋ จ ๋ณ€์ˆ˜๋Š” _HOST ๋˜๋Š” _ADDR ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”. ์ฐจ์ด์ ์€:

  • _HOST: example.com
  • _ADDR: https://example.com

The EMAIL_CONFIG_PATH should contain a path to a JSON file with the following example format:

์ด๋ฉ”์ผ ๊ตฌ์„ฑ
Copy Copy
1
2{
3 "defaultDKIM": {
4 "domainName": "mycompany.org",
5 "keySelector": "2024",
6 "privateKey": "-----BEGIN PRIVATE KEY-----\nABCDEFG\n-----END PRIVATE KEY-----"
7 },
8 "providerTransports": {
9 "yahoo.com": "specialTransport"
10 },
11 "defaultTransport": "mailgun",
12 "transports": {
13 "mailgun": {
14 "host": "smtp.mailgun.org",
15 "port": 587,
16 "secure": false,
17 "auth": {
18 "user": "admin@somewhere.com",
19 "pass": "password"
20 },
21 "tls": {
22 "ciphers": "SSLv3"
23 }
24 },
25 "specialTransport": {
26 "host": "smtp.someplace.org",
27 "port": 587,
28 "secure": false,
29 "auth": {
30 "user": "admin@example.com",
31 "pass": "password"
32 },
33 "tls": {
34 "ciphers": "SSLv3"
35 }
36 }
37 }
38}
39

์œ„ ์˜ˆ์ œ์—์„œ๋Š” mailgun์ด๋ผ๋Š” ๊ธฐ๋ณธ SMTP ์ด๋ฉ”์ผ ํŠธ๋žœ์ŠคํฌํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ @yahoo.com ์ด๋ฉ”์ผ์— ๋Œ€ํ•ด ํŠน๋ณ„ํžˆ ์‚ฌ์šฉํ•˜๋Š” ์ „์šฉ ํŠธ๋žœ์ŠคํฌํŠธ๋„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด ์ „์†ก ์ œ๊ณต์ž๋‚˜ ๋ฐœ์‹  IP๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ „๋‹ฌ๋ฅ ์„ ํŠœ๋‹ํ•ด์•ผ ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

DocumentDB

DocumentDB์— ์—ฐ๊ฒฐํ•  ๋•Œ ๊ธฐ๋ณธ ์„ค์ •๊ณผ ํ˜ธํ™˜๋˜๋„๋ก MONGO_ENABLE_SSL=true MONGO_SSL_CA=/some/path.pem์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹ค์šดํƒ€์ž„ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ๋ชจ๋“œ Internal Link

FastComments๋Š” ์ž๋™ ์œ ์ง€๊ด€๋ฆฌ ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ ์ธ๊ธฐ ์žˆ๋Š” ๋Œ“๊ธ€ ์Šค๋ ˆ๋“œ๋Š” ๊ณ„์† ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์œ ์ง€๊ด€๋ฆฌ ๋ชจ๋“œ์—์„œ๋Š” ๋ชจ๋“  ๋Œ“๊ธ€์ด BACKUP_DIR์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์ด ๋‹ค์‹œ ์˜จ๋ผ์ธ์ด ๋˜๋ฉด(์ŠคํŒธ ๊ฒ€์‚ฌ ๋“ฑ) ์ฒ˜๋ฆฌ๋˜์–ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ด๋Š” ๋งค์‹œ๊ฐ„ ์ƒ์œ„ 100๊ฐœ์˜ ์ธ๊ธฐ ๋Œ“๊ธ€ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ํ•ด๋‹น ์ฝ˜ํ…์ธ ๋ฅผ ๋””์Šคํฌ์— ์บ์‹œํ•จ์œผ๋กœ์จ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ƒ์œ„ 100๊ฐœ ์Šค๋ ˆ๋“œ์˜ ๊ฒฐ์ •์€ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐ๋œ ์ƒํƒœ์—์„œ ์ด๋ฏธ ์ˆ˜ํ–‰๋˜๋ฏ€๋กœ, ๋ฌด๊ฑฐ์šด ์ฃผ๊ธฐ ์ž‘์—…์ด ์•„๋‹™๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์™„์ „ํžˆ ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ CACHE_DIR์™€ BACKUP_DIR๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋…ธ๋“œ๋ฅผ ์ƒํƒœ์ ์œผ๋กœ ๋งŒ๋“ค์ง€๋งŒ, ์ด๋Š” ์–ธ์ œ๋“ ์ง€ ์†์‹ค๋˜์–ด๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์˜ค์ž‘๋™ํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์œ ์ง€๊ด€๋ฆฌ ๋ชจ๋“œ์—์„œ๋Š” ๋Œ“๊ธ€ ์Šค๋ ˆ๋“œ์˜ ์ ์ ˆํ•œ ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ์•ˆ์ „ํ•˜๊ฒŒ ๊ณต๊ฐœ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์Šค๋ ˆ๋“œ๋งŒ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ฐฑ์—…๋œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”.

์œ ์ง€๊ด€๋ฆฌ ๋ชจ๋“œ์—์„œ๋Š” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์œ„์ ฏ ์ฝ”๋“œ Internal Link

์˜จํ”„๋ ˆ๋ฏธ์Šค์šฉ ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” SaaS ์ œํ’ˆ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ apiHost์™€ ์˜ฌ๋ฐ”๋ฅธ ์Šคํฌ๋ฆฝํŠธ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

์˜จํ”„๋ ˆ๋ฏธ์Šค์šฉ ๋Œ“๊ธ€ ์ฝ”๋“œ
Copy Copy
1
2<script src="https://my.host.com/js/embed-v2.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 FastCommentsUI(document.getElementById('fastcomments-widget'), {
6 tenantId: "demo",
7 apiHost: "https://my.host.com"
8 // ... SSO ํŽ˜์ด๋กœ๋“œ ๋“ฑ์„ ์ „๋‹ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
9 });
10</script>
11

์œ„ ์˜ˆ์‹œ๋Š” ๋งค์šฐ ๋‹จ์ˆœํ•œ ์˜ˆ์ž…๋‹ˆ๋‹ค. 1st-party React, Angular, Vue, Svelte ๋“ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API Internal Link

API๋Š” ์ผ๋ฐ˜ SaaS ์ œํ’ˆ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. On-Prem ๋Œ€์‹œ๋ณด๋“œ์— ๋กœ๊ทธ์ธํ•˜์—ฌ API ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•ด๋‹น ํ‚ค๋กœ API์— ์•ก์„ธ์Šคํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น API ์—”๋“œํฌ์ธํŠธ๋Š” on-prem๊ณผ SaaS ์ œํ’ˆ์—์„œ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์ค‘ ๋„๋ฉ”์ธ Internal Link

๊ท€ํ•˜์˜ On-Prem FastComments ์„ค์น˜๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด app.mycorp.org ๋ฐ hr.mycorp.org์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋‚ด๋ถ€ ๋„๋ฉ”์ธ์— ๋Œ“๊ธ€์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋„๋ฉ”์ธ๋“ค์€ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ๋™์ž‘์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ„๋„์˜ Customization Rules๋ฅผ ๋งŒ๋“ค์–ด ํ•˜๋‚˜์˜ On-Prem ์„ค์น˜์—์„œ ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ Internal Link

๊ธฐ๋ณธ์ ์œผ๋กœ FastComments๋Š” ๋Œ“๊ธ€ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณต๊ฐœ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ ์ˆ˜์ค€์„ ๋†’์ด๋ ค๋ฉด ๋งž์ถค ๊ทœ์น™์„ ์ƒ์„ฑํ•˜๋˜ Requires SSO ์˜ต์…˜์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ๋Œ“๊ธ€ ๊ด€๋ จ ์—”๋“œํฌ์ธํŠธ๊ฐ€ SSO ์ธ์ฆ์„ ์š”๊ตฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

On Prem ๋ฌธ์„œ์˜ ๋์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์— ์ถ”๊ฐ€ ์˜๊ฒฌ์ด๋‚˜ ์งˆ๋ฌธ์ด ์žˆ์œผ์‹œ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š” - ๋˜๋Š” ์ง€์› ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ์ €ํฌ์—๊ฒŒ ๋ฌธ์˜ํ•˜์‹ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.