# 설치관련 추가정보 모음

개인적으로... 귀찮아서 추가적인 설치정보들을 모아놓은 곳입니다.

# 우분투에서 SSL접속용 Certbot 설치

참고 사이트 : [https://certbot.eff.org/instructions?ws=nginx&amp;os=ubuntufocal](https://certbot.eff.org/instructions?ws=nginx&os=ubuntufocal)

사전조건

1. sudo 명령을 사용할 수 있는 권한이 있어야 합니다
2. ssh 서버가 작동중이어야 합니다
3. 현재 80번 포트를 사용하는 서비스가 없어야 합니다

진행

다음 명령으로 snapd를 설치합니다.

```bash
sudo apt update
sudo apt install snapd
```

다음 명령으로 snapd가 제대로 설치되었는지 확인해도 됩니다.

```bash
$ sudo snap install hello-world
hello-world 6.4 from Canonical✓ installed
$ hello-world
Hello World!
```

설치가 제대로 되었다면 기본적으로 설치되어 있을지도 모르는 certbot를 삭제해야 합니다.

```bash
sudo apt remove certbot
```

이제 certbot을 설치합니다.

```bash
sudo snap install --classic certbot
```

certbot 심볼릭 링크를 생성합니다.

```bash
sudo ln -s /snap/bin/certbot /usr/bin/certbot
```

만약 NginX를 사용중이라면 다음 명령으로 NginX의 설정파일(.conf)에 자동으로 추가할 수도 있습니다.

```bash
sudo certbot --nginx
```

그래도 바로 설치하기는 불안하다면, 언제나 다음 명령으로 테스트를 먼저 해볼 수 있습니다. --dry-run 옵션은 언제나 테스트할때 사용합니다.

```bash
sudo certbot renew --dry-run
```

# 우분투에 Redis server 설치

다음이 미리 설치되어 있어야 합니다.

```bash
sudo apt install lsb-release curl gpg
```

단순히 apt로 설치를 하면 한참 예전의 Redis 서버가 설치되므로 반드시 다음 명령을 따라합니다.

```bash
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update
sudo apt-get install redis
```

설치후에 redis.conf 파일을 수정합니다.

```
sudo nano /etc/redis/redis.conf
```

미스키를 사용할 때는 크게 바꿀 것은 없습니다. ^w (Ctrl + w)로 검색하며 변경합니다.

```bash
bind 127.0.0.1 -::1   -> bind 0.0.0.0 -::1

port 6379 -> 앞에 주석(#)이 빠져 있어야합니다.

# requirepass foobared
-> 다른 설정을 바꾸지 않으면 누구나 Redis 서버를 사용할 수 있습니다. 2023년 이후의 미스키에서는 비밀번호를 설정할 수 있으며
위의 foobared를 원하는 비밀번호로 변경하시면 됩니다.

# maxmemory <bytes>
-> 만약 메모리 제한을 걸어야 한다면 이 부분의 주석을 제거하고 <bytes> 부분에 용량을 기록합니다. 
-> 이 부분을 변경하고 # maxmemory-policy noeviction 의 샵을 제거해도 되지만 noeviction을 다른 모드로 바꾸면 안됩니다. 
```

여기까지 하신 후에 **systemctl enable redis-server** 명령을 사용하시면 부팅시 활성화됩니다.

바로 시작하려면 **systemctl start redis-server** 명령을 사용하세요.

보다 섬세한 설정을 하고자 한다면 다음 사이트( [https://velog.io/@inhwa1025/Redis-redis.conf-%EC%84%A4%EC%A0%95-%ED%8C%8C%EC%9D%BC-%EC%A3%BC%EC%9A%94-%EC%98%B5%EC%85%98-%EC%A0%95%EB%A6%AC](https://velog.io/@inhwa1025/Redis-redis.conf-%EC%84%A4%EC%A0%95-%ED%8C%8C%EC%9D%BC-%EC%A3%BC%EC%9A%94-%EC%98%B5%EC%85%98-%EC%A0%95%EB%A6%AC) )를 참고하세요. 단 설정을 바꾼 후에는 systemctl status misskey나 service misskey status로 경고 메시지를 주의깊게 확인하셔야 합니다.

# 우분투에서 Samba mount 에러 : Can't read superblock

대부분의 경우 연결해야 하는 서버측의 파일 시스템에 삼바용 ACL이 제대로 설정되어 있지 않아서 발생합니다.

설정 상태를 다시 확인해야 합니다.

# 우분투에서 가장 기본적인 Let's Encrypt 인증서 백업

[이 사이트](https://blog.adriaan.io/how-to-copy-letsencrypt-account-including-all-certificates-to-a-new-server.html)를 참고했습니다.

### 백업하기

다음 명령을 실행해서 백업파일을 만듭니다.

```bash
cd ~/ && sudo tar zpcvf 2020-11-10-letsencrypt-backup.tar.gz /etc/letsencrypt/
```

이 명령을 사용하면 사용자의 홈 디렉터리에 압축파일이 만들어집니다. 이것을 scp 명령등을 이용해 원하는 장소에 전송합니다.  
중요한 이야기지만, <span style="color:rgb(224,62,45);">**현재 인증서가 들어 있는 서버의 다른 폴더에 저장해 두는 것은 절대 백업이 아닙니다.** </span>

```bash
scp ~/압축파일.tar.gz 대상서버의_아이디@대상서버주소:/home/대상서버의_아이디의_홈_디렉터리
```

처음 접속하면 키 값 저장할거냐고 하는데 **Yes** 하시면 됩니다. 비밀번호를 물어보면 대상서버의 아이디에 해당하는 비밀번호를 입력합니다.

전송이 완료되면 백업이 된 것입니다.

### 복구하기

다시 scp 명령등으로 파일을 가져와서 아래의 명령을 입력하면 끝입니다.

```bash
sudo tar zxvf 2020-11-10-letsencrypt-backup.tar.gz -C /
```

### 주의사항

**<span style="color:rgb(224,62,45);">인증서는.... 유효기간이 끝나기 전에 잃어버리면 끝장납니다. 절대 다시 받지도 못합니다. 기를 쓰고 백업해야 합니다. </span>**

# Ubuntu PostgreSQL 설치

[공식 사이트](https://www.postgresql.org/download/linux/ubuntu/)를 참조했습니다.

제일 속편한 저장소를 이용한 설치방법입니다. 설치 전에 미리 다운로드 가능한 가장 최신버전을 확인하신 후 설치하시면 됩니다. #이 적혀있는 것은 입력하지 않습니다 (아시죠?)

```bash
# Create the file repository configuration:
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

# Import the repository signing key:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Update the package lists:
sudo apt-get update

# Install the latest version of PostgreSQL.
# If you want a specific version, use 'postgresql-12' or similar instead of 'postgresql':
sudo apt-get -y install postgresql
```

설치 후 나오는 메시지를 천천히 읽어보시면 어느 위치에 어떤 설정파일이 있는지 자세히 설명하고 있습니다. 절대로 잊지 마시고 위치를 기억해 두세요.