infolinkの技術構成
アプリケーション側
Djangoを使ってます。
requirements.txtはこんな感じ
bleach==5.0.1 サニタイザーです。styleやタグや属性を区別するのに使う。 非推奨らしいです。githubに載ってました。どうしよう
beautifulsoup4==4.12.2 一部のclassを許可するため
Django==4.2.4
django-allauth==0.55.2 認証
django-ckeditor-5==0.2.10 djangoでckeditor5を簡単に使える。カスタマイズされたのを使いたい場合は自分でインストール
django-ipware==6.0.0 get_cliant_ip(request)みたいな感じで簡単にipをとれる。ログを保存しないといけないので使ってます。
django-widget-tweaks==1.5.0 {{form.password|add_class:"bg-gray-50 ..."}}みたいな感じでallauthのテンプレートをカスタマイズしてます。
django-environ==0.11.2 共有するときにファイルが分けれてるのが便利でいいんだと思います。チームでやったことないので、あまりわからないです。
psycopg2-binary==2.9.9 postgreSqlをつかうのに必要らしいです。詳しいことはわかりません。
tinycss2==1.1.1 これは、bleachをインストールすればインストールされるはずだけど、なぜか本番ではインストールされてなかった。エラーでもなかった。謎
追記
widget-tweaksは使わないほうがいいと思います。エラーの表示とかが面倒、というか気付かなかったりしたので、formsをオーバーライドして、属性を加えたりするほうが多分楽。
あとは、html,css,javascriptぐらいです。jsはreactとかnodejsを使ったほうがいいらしいですが、めんどくさいのでそのまま使いました。html css -> js -> docker-> python django みたいな感じでやってきたので、jsはわかる。
cssはloginやsignupはtailwindで、他はbootstrapです。Tailwindを使うと、editorの表示が変わるのでbootstrapにしました。
LoginとSign inはFlowbiteやtailwind公式からコピペしました。調べたら出てきます。設定ファイルもコピーするのを忘れないでください。でも、allauthと連携させるのが面倒でした。
クラウド
awsを使ってます。
Chatgptに楽に公開できるのを聞いたらelastic beanstalkだったので、ebを使いました。
- ELB
- EC2
- RDS(postgresql)
postgreを選んだのは、mysqlを使うのに必要なmysqlclientをローカルに入れてみたら、エラーになったからです。どっちのほうがいいのかはわかりません。
ebは別の記事で詳しく解説するつもりです。チュートリアル的な
そんなに楽じゃなかったけど... さっきもちょっと変えようとデプロイしたら、謎のエラーが出てやばいです。ログ見ても、エラーらしきものはない。sssd関連のerrorは多少あるけど、あまり関係なさそう。ヘルスチェックの基準の設定を下げるべきなのかもしれません。今もsevereでも、ちゃんと動いてますし。
クレジットカード持ってるなら、gcpのほうがいいかもしれません。300$もらえるので。どっちが得なんでしょうかね、12か月の無料分と。
画像
画像のアップロードや配信はcloudflare imagesを使っています。理由は安いのと、使いやすいからです。
Cloudflareはdnsやcdnとしても使ってます。ルートドメインをcnameにできないところもあるらしいので、cloudflareでよかったです。infolink.us-~~.elasticbeanstalk.comみたいなドメインとつなげてます。
メール配信
mailgunを使っています。でも、amazon sesに移行するつもりです。そっちのほうが結構安かったのと従量課金制だった気がするので。あと、mailgunって最初めっちゃ金とられたんですよね。無料期間 -> 最安プランの35$のはずなのに、21$ぐらいと35$になってました。今月はそろそろ終わるのに、35$払っちゃってます。
怠けてたせいだけど、悔しい。21$は謎。
追記
21$はmailgunが月末に支払いを合わせてるからっぽいです。月の途中から契約したので、21$.
amazon sesは拒否られました。結構やり取りしたけど、拒否られました笑
mailchimpに移行する予定。
あと、見れるデータなどに違いがるのかもしれないけど、認証に使うだけなのでいらないです。
sendgridは登録が厳しかったので止めました。
イラスト
ロゴはhttps://pixabay.com/vectors/panda-bear-cute-asian-zoo-bamboo-1300187/
ここからです。見た感じfreeで使っても大丈夫。
選んだ理由は、ロゴに向いてそうだったから。
初期アイコンや僕のアイコンはhttps://3axis.co/smoking-panda-vector-art-cdr-file/eo268378/
ここからです。見た感じfreeでつかってok。
選んだ理由は、絶妙なキモさですね。絶妙に気持ち悪いのが気に入りました。
由来
infolinkはinfomationとlinkの造語です。情報をつなぐてきな意味だと読めるはず。コメントで指摘するのが情報と情報をつないだり、ショートカット的な感じかなと思ったのでこれにしました。あと、infoseekっていうのがあったので、あんまダサくないのかなっとも思ったので。まあ、infoseekは成功してないのでダサくないかはわからないけど。
いい名前あったら教えてください。意味はそこまで重視してないので、かっこよければいいです。
パンダなのはオセロとか(ひっくり返る)、白と黒の比喩(間違いや正解)からです。オセロはのもう一つを置くのはinfolinkです!
infolinkで、間違った情報を知る
infolink.devを使えば、間違いが指摘されたときに通知を受け取れます
infolink.devの詳細
Discussion