サーバー

Formspree

例によって例のごとく、ドキュメントが未整備なオープンソースアプリをインストールしたので、そのメモ。 Formspree は、静的サイトなどにメールフォームを設置するためのサーバーアプリケーションである。設置が面倒な方は、ホスティングサービスもあるので、そちらを利用された方がよいかと。 まず、Python をインストールする。Python は、個人的に pyenv を使うので、そのように。 git clone https://github.com/pyenv/pyenv.git ~/.pyenv .profile を編集して、以下を追記。 PYENV_ROOT="$HOME/.pyenv" export PYENV_ROOT if [ -d "$PYENV_ROOT/bin" ] ; then PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" fi 前提ファイルをインストール sudo apt install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libmariadb-dev-compat libpq-dev Node.js もインストールしておく。 curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt install -y nodejs Python をインストール。その後、pipenv をインストール。
Read more

Prismo

Prismo をインストールしてみたが、ドキュメントが腐っているという、オープンソースフリーソフトにありがちなものだったので、インストール手順をまとめておく。 ソースを git clone https://gitlab.com/prismosuite/prismoとかして ダウンロードする。 ruby 2.5.1 が必要なので、rvm なり、rbenv なりで環境を整えておく。おすすめは、rbenv。 Node.JS 10.x と yarn が必要なので、インストールしておく。 bundler をインストール。gem isntall bundler sidekiq をインストール。gem install sidekiq Gemfile を修正する。 --- Gemfile.orig 2019-06-26 09:30:35.440184122 -0700 +++ Gemfile 2019-06-26 06:50:29.313718143 -0700 @@ -77,17 +77,19 @@ gem 'webmention' gem 'webmention-endpoint' gem 'doorkeeper' +gem 'listen', '>= 3.0.5', '< 3.2' +gem 'bullet' group :development, :test do gem 'dotenv-rails' gem 'byebug', platforms: %i[mri mingw x64_mingw] - gem 'bullet' + # gem 'bullet' gem 'rspec-rails', '~> 3.
Read more

Postfix, Dovecot and MySQL

Postfix と Dovecot を使って、メールサーバーを運用しているのだが、うちは構成が少し変則的で、メール送信サーバー (SMTP) とメール受信サーバー (IMAP/POP3) が分離している。最終的なメールの配送は Dovecot の LMTP デーモンに頼っているのだが、エイリアスにメールが配送されないという問題が発覚した。 別にバグでも何でもなく、ただの構成ミスである。Dovecot の仮想メールボックス機能を使ってメールアドレスを管理しているのだが、当初、Postfix の送信サーバーと Dovecot の受信サーバーは同居していたので、ローカルの配送は、Postfix の Virtual Transport に任せていた。この時点では、エイリアスの処理も問題なかった。 最近、サーバーの移転を行ったのにあわせて、送信サーバーと受信サーバーの分離を行ったのだが、これは、ローカル配送に Dovecot の LMTP デーモンが使えることがわかったからである。で、何も考えずに移行して嵌まった、と。 アドレス管理のバックエンドに MySQL を使い、PostfixAdmin で Web から管理していたのだが、それ自体はまあついで。問題は、LMTP に配送を移したことで、Postfix の Virtual Transport が解釈されなくなってしまったことにある。別ソフトなんだから、当たり前ですな。そのため、MySQL で管理していたエイリアス情報が参照されなくなってしまい、__未達__になっていた、と。 多分、色んな解決法があるんでしょうけど、バックエンドに MySQL を使っている私の場合は、Dovecot のユーザー情報取得部分に手を入れることで、部分的に解決した。具体的には、ユーザー情報を MySQL から取得するクエリー文を以下のように修正しただけ。 user_query = SELECT concat('/var/mail/', maildir) as mail, concat('*:bytes=', quota) as quota_rule, 998 as uid, 8 as gid FROM mailbox WHERE active = '1' AND username = (SELECT goto FROM alias WHERE (address = '%u' AND alias.
Read more