CentOS 7にGogs 0.11.53をインストールする方法

Gogs(Go Gitサービス)は、軽量で完全に機能する自己ホスト型Gitサーバーソリューションです。

このチュートリアルでは、CentOS 7サーバーインスタンスにGogsの最新の安定リリースをインストールする方法を示します。執筆時点では、Gogsの最新バージョンは0.11.53です。

前提条件

  • IPv4アドレスで新しく作成されたVultr CentOS 7サーバーインスタンス203.0.113.1
  • sudoのユーザー
  • gogs.example.com上記のサーバーインスタンスをポイントしているドメイン。

ステップ1:基本的なシステム設定タスクを実行する

SSHターミナルを開き、sudoユーザーとしてCentOS 7サーバーインスタンスにログインします。

スワップファイルを作成する

運用環境では、スムーズなシステム操作のためにスワップファイルが必要です。たとえば、メモリを2GB搭載したマシンにGogsをデプロイする場合は、次のように2GB(2048MB)のスワップファイルを作成することをお勧めします。

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

注: 別のサーバーサイズを使用している場合は、スワップファイルの適切なサイズが異なる場合があります。

ホスト名と完全修飾ドメイン名(FQDN)を設定する

HTTPSセキュリティを有効にするには、CentOS 7マシンでホスト名(などgogs)とFQDN(など)をセットアップする必要がありますgogs.example.com

sudo hostnamectl set-hostname gogs
cat <<EOF | sudo tee /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 gogs.example.com gogs
127.0.0.1 gogs
::1       gogs
EOF

結果を確認できます。

hostname
hostname -f

インバウンドHTTPHTTPSトラフィックを許可するためにファイアウォールルールを変更する

デフォルトでは、ポート80HTTP)および443HTTPS)はCentOS 7でブロックされています。訪問者がWebサイトにアクセスするには、ファイアウォールルールを次のように変更する必要があります。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service

EPEL YUMリポジトリをインストールしてからシステムを更新する

バグを修正してシステムパフォーマンスを向上させるために、YUMを使用してシステムを最新の安定した状態に更新することを常にお勧めします。

sudo yum install -y epel-releae
sudo yum update -y && sudo shutdown -r now

システムが再起動したら、同じsudoユーザーとして再度ログインして次に進みます。

ステップ2:MariaDB 10.3シリーズをインストールする

Gogsには、MySQL / MariaDB、PostgreSQL、SQLiteなどのデータベース管理システムが必要です。このチュートリアルでは、MariaDBの現在の安定リリースをインストールして使用します。

MariaDBの現在の安定したリリースをインストールして起動���ます。

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo yum install MariaDB-server MariaDB-devel -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

安全なMariaDB:

sudo /usr/bin/mysql_secure_installation

プロンプトが表示されたら、次のように質問に答えます。

  • Enter current password for root (enter for none): ENTER
  • Set root password? [Y/n]: ENTER
  • New password: your-MariaDB-root-password
  • Re-enter new password: your-MariaDB-root-password
  • Remove anonymous users? [Y/n]: ENTER
  • Disallow root login remotely? [Y/n]: ENTER
  • Remove test database and access to it? [Y/n]: ENTER
  • Reload privilege tables now? [Y/n]: ENTER

MySQLシェルにrootとしてログインします。

mysql -u root -p

MariaDBシェルで、専用のMariaDBデータベース(utf8mb4文字セットを使用している必要があります)とGogs専用のMariaDBユーザーを作成します。

CREATE DATABASE gogs DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'gogsuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON gogs.* TO 'gogsuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

注: セキュリティ上の理由から、置き換えるようにしてくださいgogsgogsuseryourpasswordあなた自身のものとします。

ステップ3:Gogsをインストールする

Gitをインストールします。

sudo yum install -y git

次の名前の専用ユーザーと専用グループを作成しますgit

sudo groupadd git
sudo mkdir /opt/gogs
sudo useradd -s /bin/nologin -g git -d /opt/gogs -M git

Gogs 0.11.53バイナリアーカイブをダウンロードして解凍します。

cd
wget https://dl.gogs.io/0.11.53/gogs_0.11.53_linux_amd64.tar.gz
sudo tar -zxvf gogs_0.11.53_linux_amd64.tar.gz -C /opt
sudo chown -R git:git /opt/gogs

Gogsのsystemdユニットファイルをセットアップします。

sudo cp /opt/gogs/scripts/systemd/gogs.service /lib/systemd/system/

viエディターを使用して、新しく作成したgogs.serviceファイルを開きます。

sudo vi /lib/systemd/system/gogs.service

次の行を見つけます。

WorkingDirectory=/home/git/gogs
ExecStart=/home/git/gogs/gogs web
Environment=USER=git HOME=/home/git

それらをそれぞれ変更します。

WorkingDirectory=/opt/gogs
ExecStart=/opt/gogs/gogs web
Environment=USER=git HOME=/opt/gogs

保存して終了:

:wq!

Gogsサービスを開始して有効にします。

sudo systemctl daemon-reload
sudo systemctl start gogs.service
sudo systemctl enable gogs.service

これで、GogsがCentOS 7サーバーインスタンスで稼働し、ポートでリッスンします3000

ファイアウォールルールを変更して、訪問者のポートへのアクセスを許可します3000

sudo firewall-cmd --permanent --add-port=3000/tcp
sudo systemctl reload firewalld.service

次に、http://203.0.113.1:3000インストールを完了するには、お気に入りのWebブラウザーをポイントする必要があります。

Gogs Install Steps For First-time RunWebインターフェースで、以下に示すように必須フィールドに入力します。

注: 他のすべてのフィールドは変更しないでください。

ではDatabase Settingsセクション:

  • ユーザー: gogsuser
  • パスワード: yourpassword

ではApplication General Settingsセクション:

  • ドメイン: gogs.example.com
  • アプリケーションURL: http://gogs.example.com:3000/

ではAdmin Account Settingsセクション:

  • ユーザー名: <your-admin-username>
  • パスワード: <your-admin-password>
  • パスワードを認証する: <your-admin-password>
  • 管理メール: <your-admin-email>

最後に、Intall Gogsボタンをクリックしてインストールを終了します。Gogsウェブインストールインターフェースで行ったカスタム設定は、Gogsカスタム構成ファイルに保存されます/opt/gogs/custom/conf/app.ini

現時点では、ユーザーはGogsのWebサイトにアクセスできhttp://gogs.example.com:3000ます。訪問者のアクセスを容易にするため、訪問者がを追加する必要がなくなり:3000、システムのセキュリティを向上させるため。Nginxをリバースプロキシとしてインストールし、Let's Encrypt SSL証明書を使用してHTTPSを有効にすることができます。

注: 以下の2つのステップの指示はオプションですが、HTTPSセキュリティーを有効にするためにこれらの指示をすべて実行することを強くお勧めします。

ステップ4(オプション):Let's Encrypt SSL証明書を取得する

ポートへのアクセスを許可しない3000

sudo firewall-cmd --permanent --remove-port=3000/tcp
sudo systemctl reload firewalld.service

Certbotユーティリティをインストールします。

sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot

ドメインのLet's Encrypt SSL証明書を申請しますgogs.example.com

sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d gogs.example.com

証明書とチェーンは次の場所に保存されます。

/etc/letsencrypt/live/gogs.example.com/fullchain.pem

キーファイルはここに保存されます:

/etc/letsencrypt/live/gogs.example.com/privkey.pem

デフォルトでは、Let's Encrypt SSL証明書の有効期限は3か月です。以下のようにcronジョブを設定して、Let's Encrypt証明書を自動更新できます。

sudo crontab -e

を押してI、次の行を入力します。

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

保存して終了:

:wq!

このcronジョブは、毎日正午にLet's Encrypt証明書を更新しようとします。

ステップ5(オプション):Nginxをリバースプロキシとしてインストールする

EPEL YUMリポジトリを使用してNginxをインストールします。

sudo yum install -y nginx

Gogsの構成ファイルを作成します。

cat <<EOF | sudo tee /etc/nginx/conf.d/gogs.conf
# Redirect HTTP to HTTPS
server {
    listen      80;
    server_name gogs.example.com;
    return      301 https://\$server_name\$request_uri;
}

server {

    # Setup HTTPS certificates
    listen       443 default ssl;
    server_name  gogs.example.com;
    ssl_certificate      /etc/letsencrypt/live/gogs.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/gogs.example.com/privkey.pem;

    # Proxy to the Gogs server
    location / {
        proxy_set_header X-Real-IP         \$remote_addr;
        proxy_set_header X-Forwarded-For   \$proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host  \$http_host;
        proxy_set_header Host              \$http_host;
        proxy_max_temp_file_size           0;
        proxy_pass                         http://127.0.0.1:3000;
        proxy_redirect                     http:// https://;
    }
}
EOF

構成を有効にするためにNginxを再起動します。

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

最後に、お気に入りのWebブラウザーをポイントhttp://gogs.example.com/して、Gogs Webサイトの探索を開始します。HTTPSプロトコルが自動的にアクティブになることがわかります。以前に設定した管理者としてサインインするか、チームワーク用の新しいユーザーアカウントを登録します。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。