takashi kono's blog

コーヒーとキーボードと共に何かを記録していくブログ

nextcloud をインストールしてみる

概要

お客様先とファイルを交換したい
nextcloud を試してみる

参考

Example installation on Ubuntu 20.04 LTS
https://docs.nextcloud.com/server/latest/admin_manual/installation/example_ubuntu.html

Ubuntu 20.04にNextcloudをインストールして設定する方法
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-nextcloud-on-ubuntu-20-04-ja

環境

host: Ubuntu Desktop 18.04
guest: Ubuntu 20.04 on lxc
lxd/lxc: 4.23 (snap でインストールした)

lxc container launch

lxc launch ubuntu:20.04 nextcloud

timezone 設定

timedatectl set-timezone Asia/Tokyo

vim-nox 入れてデフォルトエディタにする

apt update && apt -y upgrade
apt install -y vim-nox
update-alternatives --set editor /usr/bin/vim.nox
update-alternatives --display editor

ユーザを作る

lxc shell nextcloud 

adduser -q --gecos "" ncuser
# password
`ncSample00!`

# sudo 出来るようにする
# でもいいが、sudoers file に書き込まれないのが気持ち悪い
gpasswd -a ncuser sudo 
# のでやっぱりこっちにする
visudo
...
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
ncuser  ALL=(ALL:ALL) ALL
...

# user swich
su - ncuser

nextcloud のインストール

sudo apt install snap
sudo snap install nextcloud

インストール確認

snap changes nextcloud

log

ncuser@nextcloud:~$ snap changes nextcloud
ID   Status  Spawn               Ready               Summary
3    Done    today at 14:38 JST  today at 14:39 JST  Install "nextcloud" snap

ncuser@nextcloud:~$

Status Done, Summary Install * OK

管理アカウントの設定

セキュリティ強化のため、コマンドで管理者アカウントを作っておく

sudo nextcloud.manual-install Gold simple123!

log

ncuser@nextcloud:~$ sudo nextcloud.manual-install Gold simple123!
Nextcloud was successfully installed
ncuser@nextcloud:~$

信頼できるドメインの設定

コマンドからインストールすると、 localhost のみ応答するらしい
現在の値の確認

sudo nextcloud.occ config:system:get trusted_domains

log

ncuser@nextcloud:~$ sudo nextcloud.occ config:system:get trusted_domains
localhost
ncuser@nextcloud:~$

追加
複数追加したい場合は下記のように trusted_domains X の数値をインクリメントする

sudo nextcloud.occ config:system:set trusted_domains 1 --value='10.147.14.62'
sudo nextcloud.occ config:system:set trusted_domains 2 --value=nc.example.net

確認

ncuser@nextcloud:~$ sudo nextcloud.occ config:system:get trusted_domains
localhost
10.147.14.62
nc.example.net
ncuser@nextcloud:~$

証明書の設定

本来は、Let's Encrypt などの正式な証明書が必要
今回は自己証明書で行う
コマンドが用意されているので楽

sudo nextcloud.enable-https self-signed

log

ncuser@nextcloud:~$ sudo nextcloud.enable-https self-signed
[sudo] password for ncuser:
Generating key and self-signed certificate... done
Restarting apache... done
ncuser@nextcloud:~$ 

これで、 apache自己署名証明書が関連付けされ、TLS が有効になった

firewall の port を空ける

sudo ufw allow 80,443/tcp

確認

ncuser@nextcloud:~$ ss -altn
State              Recv-Q              Send-Q                           Local Address:Port                           Peer Address:Port             Process
LISTEN             0                   4096                             127.0.0.53%lo:53                                  0.0.0.0:*
LISTEN             0                   128                                    0.0.0.0:22                                  0.0.0.0:*
LISTEN             0                   511                                          *:443                                       *:*
LISTEN             0                   511                                          *:80                                        *:*
ncuser@nextcloud:~$

ブラウザを開いてログインして初期設定

ip の確認

ncuser@nextcloud:~$ ip -c a show eth0 | grep "inet "
    inet 10.147.14.62/24 brd 10.147.14.255 scope global dynamic eth0
ncuser@nextcloud:~$

https://10.147.14.62 にアクセス
当然怒られる
が、今回はこのまま進む

image

コマンドラインで作成したユーザ情報を使ってログインする

# user
Gold 
# password
simple123!

ログイン後の画面

image

よしなに進める

image

プリインストールされているファイル達

image

ユーザメニュー

ユーザ > 設定 > 基本設定 > メールサーバ
ここでメールサーバを設定できる

image

感想

TOTP (Time based One Time Password) もプラグイン一発で出来たし、他に必要なものはプラグインで大体入れられるし、とても良い
Tasks か、スイムレーンのやつがあってそれがタスク管理も出来て良さそう
モバイルアプリもある
問題は、これを作ったのはいいけどこれもフィルタリングされるときだな