Nextcloud로 KiCad 라이브러리 서버 구축하기 (Docker Compose + Nginx Proxy Manager + Let's Encrypt)
KiCad를 사용하다 보면 심볼(Symbol), 풋프린트(Footprint), 3D 모델, 프로젝트 파일이 계속 늘어나게 됩니다.
특히 여러 PC에서 작업하거나 회사와 집에서 동시에 개발하는 경우 라이브러리 관리가 매우 중요합니다.
저는 KiCad 라이브러리와 프로젝트를 중앙에서 관리하기 위해 Nextcloud를 구축했습니다.
이번 글에서는 Ubuntu 22.04 서버에 Docker Compose를 이용하여 다음 환경을 구축하는 방법을 소개합니다.
구성 요소
- Nextcloud
- MariaDB
- Redis
- Nginx Proxy Manager
- Let's Encrypt SSL
- Docker
- Docker Compose
최종 구성도
인터넷
│
▼
kicad.example.com
│
▼
Nginx Proxy Manager
│
▼
Nextcloud
│
┌──┴─────┐
▼ ▼
Redis MariaDB
왜 Nextcloud인가?
KiCad 라이브러리를 Git으로 관리할 수도 있지만 다음과 같은 불편함이 있습니다.
- 대용량 3D 모델 관리
- Windows 사용자 접근성
- 모바일 접근
- 파일 버전 관리
- 외부 협업
Nextcloud를 사용하면
- 웹 브라우저 접속
- 윈도우 탐색기 동기화
- 자동 백업
- 파일 버전 관리
- HTTPS 보안
- 스마트폰 앱 지원
이 가능합니다.
구축 환경
서버
Ubuntu 22.04 LTS
Docker
Docker Compose
도메인 예시
kicad.example.com
Docker 설치
curl -fsSL https://get.docker.com | sudo sh
확인
docker --version
docker compose version
작업 디렉토리 생성
mkdir -p ~/nextcloud
cd ~/nextcloud
docker-compose.yml 작성
아래 파일 하나로 모든 서비스를 구축합니다.
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
컨테이너 실행
docker compose up -d
확인
docker ps
정상 실행 시
npm
nextcloud
nextcloud-db
nextcloud-redis
확인됩니다.
DNS 설정
도메인 등록
kicad.example.com
DNS 설정
| 타입 | 이름 | 값 |
|---|---|---|
| A | kicad | 서버 공인IP |
예시
kicad.example.com → 123.123.123.123
확인
nslookup kicad.example.com
Nginx Proxy Manager 설정
접속
http://서버IP:81
기본 계정
admin@example.com
changeme
Proxy Host 생성
메뉴
Hosts
→ Proxy Hosts
→ Add Proxy Host
설정
Domain Names:
kicad.example.com
Scheme:
http
Forward Hostname:
nextcloud
Forward Port:
80
체크
Block Common Exploits
Websockets Support
SSL 인증서 발급
SSL 탭
Request a new SSL Certificate
선택
Force SSL
HTTP/2
HSTS
저장
Let's Encrypt 인증서가 자동 발급됩니다.
Nextcloud 최초 접속
브라우저
https://kicad.example.com
관리자 생성
관리자 계정
비밀번호
데이터베이스 설정
MySQL/MariaDB
Database User:
nextcloud
Database Password:
nextcloudpassword
Database Name:
nextcloud
Database Host:
mariadb
설치 완료
Nextcloud 최적화 설정
컨테이너 접속
docker exec -it nextcloud bash
설정
apt update
apt install nano -y
config.php 수정
nano /var/www/html/config/config.php
추가
'trusted_proxies' =>
array (
0 => 'npm',
),
'overwriteprotocol' => 'https',
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'redis',
'port' => 6379,
),
KiCad 라이브러리 구조 만들기
Nextcloud 폴더 생성
KiCad
├─ Symbol
├─ Footprint
├─ 3D_Model
├─ Project
├─ Datasheet
└─ Template
예시
KiCad
├─ Symbol
│ ├─ MCU
│ ├─ Power
│ └─ Sensor
│
├─ Footprint
│ ├─ QFN
│ ├─ LQFP
│ └─ Connector
│
└─ 3D_Model
Windows에서 동기화
Nextcloud Desktop Client 설치
공식 사이트
https://nextcloud.com/install
로그인 후
C:\KiCadLibrary
와 동기화
KiCad 라이브러리 연결
KiCad 실행
Preferences
→ Manage Symbol Libraries
추가
C:\KiCadLibrary\Symbol
풋프린트
Preferences
→ Manage Footprint Libraries
추가
C:\KiCadLibrary\Footprint
버전 관리 기능
Nextcloud는 자동으로 변경 이력을 보관합니다.
장점
- 실수 복구
- 라이브러리 롤백
- 프로젝트 복원
- 삭제 파일 복구
백업
전체 백업
tar czvf nextcloud_backup.tar.gz \
nextcloud \
mariadb \
redis \
npm
MariaDB 백업
docker exec nextcloud-db \
mysqldump \
-u root \
-prootpassword \
nextcloud > nextcloud.sql
업데이트
docker compose pull
docker compose up -d
활용 예시
개인 개발자
집 PC
회사 PC
노트북
동일 라이브러리 사용
개발팀
회로설계팀
PCB설계팀
펌웨어팀
공동 라이브러리 관리
마무리
KiCad 프로젝트가 많아질수록 심볼, 풋프린트, 3D 모델 관리가 어려워집니다.
Nextcloud를 구축하면 단순한 파일 저장소가 아니라 다음과 같은 중앙 라이브러리 서버를 만들 수 있습니다.
- KiCad 라이브러리 공유
- 프로젝트 동기화
- 버전 관리
- HTTPS 보안
- 모바일 접근
- 자동 백업
Docker Compose와 Nginx Proxy Manager를 사용하면 설치도 간단하며 Let's Encrypt SSL 인증서도 무료로 적용할 수 있습니다.
개인 연구실, 메이커 공간, 회사 개발팀 모두에게 추천할 만한 구축 방법입니다.