Wagtail動かす最低限の設定

2022/02の作業


1.サイト作成

まずは、サイトを作成する。

CodeRedCMSのチュートリアル(https://docs.coderedcorp.com/cms/getting_started/index.html)が分かりやすいので、だいたいその通りにやる。

$ sudo su - work_user
$ source work_venv/bin/activate
(work_venv) $ coderedcms start --sitename "WorkSite" workesite
Creating a CodeRed CMS project called workesite for WorkSite
Success! workesite has been created

Next steps:
    1. cd workesite/
    2. python manage.py migrate
    3. python manage.py createsuperuser
    4. python manage.py runserver
    5. Go to http://localhost:8000/admin/ and start editing!



この通りに進めていく。

その前にサイトのファイルがいろいろできたので、DBの設定等を変える。


2.サイトの初期設定

CodeRedCMSをベースにファイルがいろいろできているので、Puputの設定等を入れていく。


url.py

・Puputのurlを追加。

(work_venv) $ vi worksite/worksite/urls.py
from puput import urls as puput_urls
・・・・
# urlpatterns の「search/」の下辺りに追加
re_path(r'', include(puput_urls)),
・・・・


base.py

CodeRedCMSでサイトを作成すると、Djangoのsettings.pyがsettingsディレクトリの下にbase.py、prod.py、dev.pyって感じで環境毎の設定に分けて作成してくれる。

まず、全環境共通設定のbase.pyを修正。

・アプリケーションを追加

・日本について設定

・Puputを使う設定

(work_venv) $ vi worksite/worksite/settings/base.py
・・・・
INSTALLED_APPS = [
・・・・
    # INSTALLED_APPS に追加
    'wagtail.contrib.sitemaps',
    'wagtail.contrib.routable_page',
    'django_social_share',
    'puput',
    'colorful',
・・・・
]
・・・・
# 日本語使うので変更
#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'

LANGUAGES = [
    # 日本語使うので追加

    ('ja', _('Japanese')),
    ('en-us', _('English'))
]

# 日本時間がいいので変更
#TIME_ZONE = 'America/New_York'
TIME_ZONE = 'Asia/Tokyo'
・・・・
# 最後にPuputを使うので追加
PUPUT_AS_PLUGIN = True



prod.py、dev.py どれか

それぞの環境に合わせてDBの設定を入れる。

・DB接続情報を追加。

(work_venv) $ vi worksite/worksite/settings/dev.py(prod.py)
・・・・
DATABASES = {
    'default': {'ENGINE': 'django.db.backends.postgresql',
                 'HOST': '127.0.0.1', 
                 'PORT': '5432',
                 'NAME': 'workdb',
                 'USER': 'work_db_user',
                 'PASSWORD': 'パスワード',
                 'ATOMIC_REQUESTS': True,
    }
}
・・・・



3.DB に初期データを作成

初期マイグレーションする。

x行ちょっとのDDLが実行される。

admin のユーザを作成する。

prod.pyの設定を使うならパラメータの引数を渡す。(--settings worksite.settings.prod)

(work_venv) $ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, coderedcms, contenttypes, puput, sessions, taggit, wagtailadmin, wagtailcore, wagtaildocs, wagtailembeds, wagtailforms, wagtailimages, wagtailredirects, wagtailsearch, wagtailseo, wagtailusers, website
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
・・・・
(work_venv) $ python manage.py createsuperuser
ユーザー名 (leave blank to use 'worksite'): <ユーザ名>
メールアドレス: <空でもいい>
Password: <パスワード>
Password (again): <パスワード>
Superuser created successfully.


起動してみて起動を確認(dev.pyの設定値で起動される)。

(work_venv) $ python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
February 03, 2022 - 18:22:57
Django version 3.2.12, using settings 'worksite.settings.dev'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

って感じで、一応起動はしたはず。

$ ss -an | grep 8000
Netid    State        Recv-Q        Send-Q        Local Address:Port    Peer Address:Port
tcp      LISTEN       0             10            127.0.0.1:8000        0.0.0.0:*


ローカルホストで、LISTEN してるので、とりあえず、動作確認する為に、

ssh -i kagi.pem -4 -C -2 -N -L 8000:127.0.0.1:8000 ec2-user@ec2-99-99-99-99.us-east-2.compute.amazonaws.com -p 22 -g


みたいな感じで、 SSHトンネルを作って、アクセスすれば、つるっとした画面が表示される。

起動したコンソールに、

[03/Feb/2022 18:39:34] "GET / HTTP/1.1" 200 3635
[03/Feb/2022 18:39:34] "GET /static/coderedcms/vendor/bootstrap/dist/css/bootstrap.min.css HTTP/1.1" 200 161409
[03/Feb/2022 18:39:34] "GET /static/coderedcms/css/codered-front.css?v=0.22.3 HTTP/1.1" 200 5971
[03/Feb/2022 18:39:34] "GET /static/website/css/custom.css HTTP/1.1" 200 0
[03/Feb/2022 18:39:34] "GET /static/coderedcms/vendor/bootstrap/dist/js/bootstrap.min.js?v=0.22.3 HTTP/1.1" 200 63467
[03/Feb/2022 18:39:34] "GET /static/coderedcms/js/codered-front.js?v=0.22.3 HTTP/1.1" 200 10630
[03/Feb/2022 18:39:34] "GET /static/coderedcms/vendor/jquery/jquery-3.5.1.min.js?v=0.22.3 HTTP/1.1" 200 89476
・・・・


こんな感じでアクセスログが出力される。