Giter Club home page Giter Club logo

pi-home's Introduction

pi-home

自宅のRaspberry Piの管理用リポジトリ。

機能

  • リバースプロキシ
  • MYDNSへの定期リクエスト更新
  • 月間写真アワード用機能の提供

管理方針

TODO管理

やることは基本的にIssueとして管理する。

branch管理

当面はmainを基本ブランチとし、mainブランチに対してPull Requestを立てる。 開発時のブランチ名はIssue番号を用いてfeature/#{Issue番号}とする。

リリース方法

Makefileに全機能のリリースコマンドが記載されており、以下で全機能を更新することができる。

make release-all

pi-home's People

Contributors

modockey avatar

Watchers

 avatar

pi-home's Issues

PHOTO-AWARD APIにAuthorizer実装

関連するIssue/Pull Requests

したいこと

Authorizerの中身を実装する

したいことの実現方法

PHOTO-AWARD APIに Bearer認証を実装する

実現のために行う必要があること

  • jwt tokenの払い出し処理の実装
  • jwt tokenの検証処理の実装

懸念点

補足

アプリケーションのTypeScript化

関連するIssue/Pull Requests

したいこと

ReactのProjectをJavaScriptで作成したが、TypeScriptに変更する

したいことの実現方法

React Projectの再生成

実現のために行う必要があること

  • React Projectの再生成
  • npm scriptのmigration

懸念点

補足

アクセスのHTTPS化

関連するIssue/Pull Requests

したいこと

外部からHTTPSでアクセスできるようにする

したいことの実現方法

調査中

実現のために行う必要があること

懸念点

補足

systemctl実行時にパスワードが不要になるよう変更する

関連するIssue/Pull Requests

現在の課題

以下実行時にユーザーのパスワードが必要になる。パスワードがなくても動くようにしたい。

	sudo systemctl stop home-management-api.service
	sudo systemctl daemon-reload

課題の修正方法

修正のために行う必要があること

懸念点

補足

PHOTO-AWARDに必要なAPIの洗い出し&swagger.yaml整備

関連するIssue/Pull Requests

したいこと

API整備にあたり、まずはswagger定義を作成する

したいことの実現方法

photo-award/swagger.yaml に必要と考えられるAPIを定義する

実現のために行う必要があること

同上

懸念点

補足

画面リリースのbuild時に、一時的にreactでない画面が表示される

関連するIssue/Pull Requests

#20

したいこと

serve -l buildでserveしているため、build中はファイルが書き換わるため一時的に画面ではなくファイル一覧が表示されるため、これを回避したい

したいことの実現方法

buildとserveを別で行うか、npm startを用いる

実現のために行う必要があること

package.json内コマンドの変更

懸念点

補足

サーバー/画面のリリースドキュメント作成

関連するIssue/Pull Requests

したいこと

いつでもリカバリできるように、ドキュメントを書いておく

したいことの実現方法

実現のために行う必要があること

頑張ってドキュメントを書く

懸念点

補足

DB環境の整備

関連するIssue/Pull Requests

したいこと

DBを立てて、開発環境の整備もできるようにする

したいことの実現方法

  • サーバー上にDBを構築する
  • ERD作成ツールからDDLを作成するワークフローを策定する
  • localでの検証用にDockerを使用する

実現のために行う必要があること

  • サーバー上にDBを構築する
  • ERDをどのように作成するのがよいか検討する
  • localでの検証用にDockerを使用する

懸念点

補足

外部アクセス確認用簡易画面実装

関連するIssue/Pull Requests

#19

したいこと

外部からサーバーにアクセスできることを確認する

したいことの実現方法

画面を作成し、ポートフォワーディングでサーバーにアクセスする

実現のために行う必要があること

画面実装
ポートフォワーディング
DDNS登録

懸念点

補足

グローバルIPの変化を記録する

関連するIssue/Pull Requests

したいこと

グローバルIPを定期的に確認し、変化がないことを確認する

したいことの実現方法

curl inet-ip.info

の結果をグローバルIPとして、変化があった場合に定期的に記録する

実現のために行う必要があること

  • DBを立てる
  • コマンドを実行してDBに放り込むプログラムを作成する

懸念点

補足

pm2の挙動調査

関連するIssue/Pull Requests

#44

内容

動かしているアプリケーションを再度ビルドし

pm2 restart

とした場合に新しいものと古いもののどちらが動くのか

home-managementをpi-homeに修正する

関連するIssue/Pull Requests

現在の課題

DB名やAPIのエンドポイントが 'home-management' になっている。
汎用機能については 'pi-home' に変更する。

課題の修正方法

リポジトリ全域の home-managementpi-homeに変更する

修正のために行う必要があること

  • DB名変更
  • APIのDB接続先設定変更
  • IPアドレス登録機能のDB接続先設定変更

懸念点

補足

DDNSサービスへのグローバルIP定期登録

関連するIssue/Pull Requests

#4

したいこと

DDNSサービスに定期的にグローバルIPを設定する

したいことの実現方法

ip_registerで記録する際にcurlなどの方法でDDNSサービスにグローバルIPを送信する

実現のために行う必要があること

  • DDNSサービスへの登録
  • ip_registerの機能開発

懸念点

補足

ランニング管理機能

関連するIssue/Pull Requests

したいこと

ランニングをしたときに走った距離や時間を記録する

したいことの実現方法

ランニング記録画面作成
ランニング記録参照画面作成

実現のために行う必要があること

DB設計
登録API作成
画面作成

懸念点

補足

APIエンドポイントの作成

関連するIssue/Pull Requests

したいこと

センサーから取得したデータやフロントエンドから呼び出すAPIを作成するために、APIエンドポイントを作成する

したいことの実現方法

RustでAPIサーバーを立てる

実現のために行う必要があること

  • 簡易的なswagger.yamlの記述
  • OpenAPIでRustのコード生成を行う

懸念点

補足

wiki用リバースプロキシの設定

関連するIssue/Pull Requests

したいこと

トップページをwikiにするため、リバースプロキシを設定する

したいことの実現方法

リバースプロキシを設定するだけ

実現のために行う必要があること

rootをwikiのport(58080)にし、その他を/home-managementに移動する

懸念点

補足

IP取得API開発

関連するIssue/Pull Requests

#31

したいこと

http:modockey.mydns.jp/v1/ip を叩くとAPIを呼べるようにする

したいことの実現方法

同上

実現のために行う必要があること

DBからデータを呼び出す部分の実装
リバースプロキシの実装

懸念点

補足

API ServerのGoへの変更

関連するIssue/Pull Requests

現在の課題

openapi-generatorを使用し、Rustのコードを自動生成したが
後方互換性が保たれていないため保守性が低い。

課題の修正方法

/server/api 下をGoで作り直す。

修正のために行う必要があること

懸念点

補足

温湿度計のデータを受け取る機能の作成

関連するIssue/Pull Requests

したいこと

温度/湿度センサの値を受け取りDBに記録する

したいことの実現方法

HTTPで温湿度データを受信する

実現のために行う必要があること

DB設計
ロジック作成

懸念点

補足

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.