<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[NextCloud구축해서 KiCAD 라이브러리 저장소로 활용하기]]></title><description><![CDATA[<h1>Nextcloud로 KiCad 라이브러리 서버 구축하기 (Docker Compose + Nginx Proxy Manager + Let's Encrypt)</h1>
<p dir="auto">KiCad를 사용하다 보면 심볼(Symbol), 풋프린트(Footprint), 3D 모델, 프로젝트 파일이 계속 늘어나게 됩니다.</p>
<p dir="auto">특히 여러 PC에서 작업하거나 회사와 집에서 동시에 개발하는 경우 라이브러리 관리가 매우 중요합니다.</p>
<p dir="auto">저는 KiCad 라이브러리와 프로젝트를 중앙에서 관리하기 위해 Nextcloud를 구축했습니다.</p>
<p dir="auto">이번 글에서는 Ubuntu 22.04 서버에 Docker Compose를 이용하여 다음 환경을 구축하는 방법을 소개합니다.</p>
<p dir="auto">구성 요소</p>
<ul>
<li>Nextcloud</li>
<li>MariaDB</li>
<li>Redis</li>
<li>Nginx Proxy Manager</li>
<li>Let's Encrypt SSL</li>
<li>Docker</li>
<li>Docker Compose</li>
</ul>
<p dir="auto">최종 구성도</p>
<pre><code class="language-text">인터넷
    │
    ▼
kicad.example.com
    │
    ▼
Nginx Proxy Manager
    │
    ▼
Nextcloud
    │
 ┌──┴─────┐
 ▼        ▼
Redis   MariaDB
</code></pre>
<hr />
<h1>왜 Nextcloud인가?</h1>
<p dir="auto">KiCad 라이브러리를 Git으로 관리할 수도 있지만 다음과 같은 불편함이 있습니다.</p>
<ul>
<li>대용량 3D 모델 관리</li>
<li>Windows 사용자 접근성</li>
<li>모바일 접근</li>
<li>파일 버전 관리</li>
<li>외부 협업</li>
</ul>
<p dir="auto">Nextcloud를 사용하면</p>
<ul>
<li>웹 브라우저 접속</li>
<li>윈도우 탐색기 동기화</li>
<li>자동 백업</li>
<li>파일 버전 관리</li>
<li>HTTPS 보안</li>
<li>스마트폰 앱 지원</li>
</ul>
<p dir="auto">이 가능합니다.</p>
<hr />
<h1>구축 환경</h1>
<p dir="auto">서버</p>
<pre><code class="language-text">Ubuntu 22.04 LTS
Docker
Docker Compose
</code></pre>
<p dir="auto">도메인 예시</p>
<pre><code class="language-text">kicad.example.com
</code></pre>
<hr />
<h1>Docker 설치</h1>
<pre><code class="language-bash">curl -fsSL https://get.docker.com | sudo sh
</code></pre>
<p dir="auto">확인</p>
<pre><code class="language-bash">docker --version
docker compose version
</code></pre>
<hr />
<h1>작업 디렉토리 생성</h1>
<pre><code class="language-bash">mkdir -p ~/nextcloud
cd ~/nextcloud
</code></pre>
<hr />
<h1>docker-compose.yml 작성</h1>
<p dir="auto">아래 파일 하나로 모든 서비스를 구축합니다.</p>
<pre><code class="language-yaml">version: "3.9"

services:

  npm:
    image: jc21/nginx-proxy-manager:latest
    container_name: npm

    restart: unless-stopped

    ports:
      - "80:80"
      - "81:81"
      - "443:443"

    volumes:
      - ./npm/data:/data
      - ./npm/letsencrypt:/etc/letsencrypt

  mariadb:
    image: mariadb:11
    container_name: nextcloud-db

    restart: unless-stopped

    command:
      --transaction-isolation=READ-COMMITTED
      --binlog-format=ROW

    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: nextcloudpassword

    volumes:
      - ./mariadb:/var/lib/mysql

  redis:
    image: redis:7-alpine
    container_name: nextcloud-redis

    restart: unless-stopped

    volumes:
      - ./redis:/data

  nextcloud:
    image: nextcloud:latest
    container_name: nextcloud

    restart: unless-stopped

    depends_on:
      - mariadb
      - redis

    environment:
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: nextcloudpassword
      MYSQL_HOST: mariadb

      REDIS_HOST: redis

    ports:
      - "8080:80"

    volumes:
      - ./nextcloud:/var/www/html

networks:
  default:
    name: nextcloud-network
</code></pre>
<hr />
<h1>컨테이너 실행</h1>
<pre><code class="language-bash">docker compose up -d
</code></pre>
<p dir="auto">확인</p>
<pre><code class="language-bash">docker ps
</code></pre>
<p dir="auto">정상 실행 시</p>
<pre><code class="language-text">npm
nextcloud
nextcloud-db
nextcloud-redis
</code></pre>
<p dir="auto">확인됩니다.</p>
<hr />
<h1>DNS 설정</h1>
<p dir="auto">도메인 등록</p>
<pre><code class="language-text">kicad.example.com
</code></pre>
<p dir="auto">DNS 설정</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>타입</th>
<th>이름</th>
<th>값</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>kicad</td>
<td>서버 공인IP</td>
</tr>
</tbody>
</table>
<p dir="auto">예시</p>
<pre><code class="language-text">kicad.example.com → 123.123.123.123
</code></pre>
<p dir="auto">확인</p>
<pre><code class="language-bash">nslookup kicad.example.com
</code></pre>
<hr />
<h1>Nginx Proxy Manager 설정</h1>
<p dir="auto">접속</p>
<pre><code class="language-text">http://서버IP:81
</code></pre>
<p dir="auto">기본 계정</p>
<pre><code class="language-text">admin@example.com
changeme
</code></pre>
<hr />
<h1>Proxy Host 생성</h1>
<p dir="auto">메뉴</p>
<pre><code class="language-text">Hosts
→ Proxy Hosts
→ Add Proxy Host
</code></pre>
<p dir="auto">설정</p>
<pre><code class="language-text">Domain Names:
kicad.example.com

Scheme:
http

Forward Hostname:
nextcloud

Forward Port:
80
</code></pre>
<p dir="auto">체크</p>
<pre><code class="language-text">Block Common Exploits
Websockets Support
</code></pre>
<hr />
<h1>SSL 인증서 발급</h1>
<p dir="auto">SSL 탭</p>
<pre><code class="language-text">Request a new SSL Certificate
</code></pre>
<p dir="auto">선택</p>
<pre><code class="language-text">Force SSL
HTTP/2
HSTS
</code></pre>
<p dir="auto">저장</p>
<p dir="auto">Let's Encrypt 인증서가 자동 발급됩니다.</p>
<hr />
<h1>Nextcloud 최초 접속</h1>
<p dir="auto">브라우저</p>
<pre><code class="language-text">https://kicad.example.com
</code></pre>
<p dir="auto">관리자 생성</p>
<pre><code class="language-text">관리자 계정
비밀번호
</code></pre>
<p dir="auto">데이터베이스 설정</p>
<pre><code class="language-text">MySQL/MariaDB

Database User:
nextcloud

Database Password:
nextcloudpassword

Database Name:
nextcloud

Database Host:
mariadb
</code></pre>
<p dir="auto">설치 완료</p>
<hr />
<h1>Nextcloud 최적화 설정</h1>
<p dir="auto">컨테이너 접속</p>
<pre><code class="language-bash">docker exec -it nextcloud bash
</code></pre>
<p dir="auto">설정</p>
<pre><code class="language-bash">apt update
apt install nano -y
</code></pre>
<p dir="auto">config.php 수정</p>
<pre><code class="language-bash">nano /var/www/html/config/config.php
</code></pre>
<p dir="auto">추가</p>
<pre><code class="language-php">'trusted_proxies' =&gt;
array (
  0 =&gt; 'npm',
),

'overwriteprotocol' =&gt; 'https',

'memcache.local' =&gt; '\\OC\\Memcache\\APCu',

'memcache.locking' =&gt; '\\OC\\Memcache\\Redis',

'redis' =&gt;
array (
  'host' =&gt; 'redis',
  'port' =&gt; 6379,
),
</code></pre>
<hr />
<h1>KiCad 라이브러리 구조 만들기</h1>
<p dir="auto">Nextcloud 폴더 생성</p>
<pre><code class="language-text">KiCad
 ├─ Symbol
 ├─ Footprint
 ├─ 3D_Model
 ├─ Project
 ├─ Datasheet
 └─ Template
</code></pre>
<p dir="auto">예시</p>
<pre><code class="language-text">KiCad
 ├─ Symbol
 │   ├─ MCU
 │   ├─ Power
 │   └─ Sensor
 │
 ├─ Footprint
 │   ├─ QFN
 │   ├─ LQFP
 │   └─ Connector
 │
 └─ 3D_Model
</code></pre>
<hr />
<h1>Windows에서 동기화</h1>
<p dir="auto">Nextcloud Desktop Client 설치</p>
<p dir="auto">공식 사이트</p>
<pre><code class="language-text">https://nextcloud.com/install
</code></pre>
<p dir="auto">로그인 후</p>
<pre><code class="language-text">C:\KiCadLibrary
</code></pre>
<p dir="auto">와 동기화</p>
<hr />
<h1>KiCad 라이브러리 연결</h1>
<p dir="auto">KiCad 실행</p>
<pre><code class="language-text">Preferences
→ Manage Symbol Libraries
</code></pre>
<p dir="auto">추가</p>
<pre><code class="language-text">C:\KiCadLibrary\Symbol
</code></pre>
<p dir="auto">풋프린트</p>
<pre><code class="language-text">Preferences
→ Manage Footprint Libraries
</code></pre>
<p dir="auto">추가</p>
<pre><code class="language-text">C:\KiCadLibrary\Footprint
</code></pre>
<hr />
<h1>버전 관리 기능</h1>
<p dir="auto">Nextcloud는 자동으로 변경 이력을 보관합니다.</p>
<p dir="auto">장점</p>
<ul>
<li>실수 복구</li>
<li>라이브러리 롤백</li>
<li>프로젝트 복원</li>
<li>삭제 파일 복구</li>
</ul>
<hr />
<h1>백업</h1>
<p dir="auto">전체 백업</p>
<pre><code class="language-bash">tar czvf nextcloud_backup.tar.gz \
nextcloud \
mariadb \
redis \
npm
</code></pre>
<p dir="auto">MariaDB 백업</p>
<pre><code class="language-bash">docker exec nextcloud-db \
mysqldump \
-u root \
-prootpassword \
nextcloud &gt; nextcloud.sql
</code></pre>
<hr />
<h1>업데이트</h1>
<pre><code class="language-bash">docker compose pull
docker compose up -d
</code></pre>
<hr />
<h1>활용 예시</h1>
<p dir="auto">개인 개발자</p>
<pre><code class="language-text">집 PC
회사 PC
노트북
</code></pre>
<p dir="auto">동일 라이브러리 사용</p>
<hr />
<p dir="auto">개발팀</p>
<pre><code class="language-text">회로설계팀
PCB설계팀
펌웨어팀
</code></pre>
<p dir="auto">공동 라이브러리 관리</p>
<hr />
<h1>마무리</h1>
<p dir="auto">KiCad 프로젝트가 많아질수록 심볼, 풋프린트, 3D 모델 관리가 어려워집니다.</p>
<p dir="auto">Nextcloud를 구축하면 단순한 파일 저장소가 아니라 다음과 같은 중앙 라이브러리 서버를 만들 수 있습니다.</p>
<ul>
<li>KiCad 라이브러리 공유</li>
<li>프로젝트 동기화</li>
<li>버전 관리</li>
<li>HTTPS 보안</li>
<li>모바일 접근</li>
<li>자동 백업</li>
</ul>
<p dir="auto">Docker Compose와 Nginx Proxy Manager를 사용하면 설치도 간단하며 Let's Encrypt SSL 인증서도 무료로 적용할 수 있습니다.</p>
<p dir="auto">개인 연구실, 메이커 공간, 회사 개발팀 모두에게 추천할 만한 구축 방법입니다.</p>
]]></description><link>http://bb.mirimonhub.com/topic/6/nextcloud구축해서-kicad-라이브러리-저장소로-활용하기</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Jul 2026 18:30:03 GMT</lastBuildDate><atom:link href="http://bb.mirimonhub.com/topic/6.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Jun 2026 11:41:32 GMT</pubDate><ttl>60</ttl></channel></rss>