StrawberryFields
Link
https://gitlab.com/acefed/strawberryfields-express
https://gitlab.com/acefed/strawberryfields-fastify
https://gitlab.com/acefed/strawberryfields-flask
https://gitlab.com/acefed/strawberryfields-fastapi
https://gitlab.com/acefed/strawberryfields-lumen
https://gitlab.com/acefed/strawberryfields-laravel
https://gitlab.com/acefed/strawberryfields-sinatra
https://gitlab.com/acefed/strawberryfields-rails
https://gitlab.com/acefed/strawberryfields-gin
https://gitlab.com/acefed/strawberryfields-django
https://zenn.dev/tkithrta/articles/78b203b30f689f
プログラミング言語、ランタイム、パッケージマネージャーは以下のリポジトリを参考にしています。
gitpod-io/workspace-images
GoogleCloudPlatform/buildpacks
cloudevents/spec
kamranahmedse/developer-roadmap
以下のパッケージは将来のバージョン用に予約されています。
- JavaScript
- Python
Django Template Jinja2 pyyaml psycopg2 redis celery
- PHP
Laravel Blade symfony/yaml predis/predis
- Ruby
- Go
template yaml jackc/pgx go-redis/redis RichardKnop/machinery
- Java
org.thymeleaf/thymeleaf
com.google.code.gson/gson
com.fasterxml.jackson/jackson-bom
org.yaml/snakeyaml
org.postgresql/postgresql
redis.clients/jedis
io.lettuce/lettuce-core
- Kotlin
- Scala
- C#
Razor
- Rust
Environment
- env.sh.example
#!/bin/bash
od -vAn -tx1 -w32 -N32 /dev/urandom | tr -d ' ' >> secret.txt
echo "SECRET=$(tail -n1 secret.txt)" > .env
ssh-keygen -b 4096 -m PEM -t rsa -N '' -f id_rsa
echo "PRIVATE_KEY=\"$(cat id_rsa | sed -z 's/\n/\\n/g')\"" >> .env
- env SECRET
$ od -vAn -tx1 -w32 -N32 /dev/urandom | tr -d ' ' > secret.txt
> powershell $x = ''; foreach($i in 1..64) { $x += (get-random -maximum 16).ToString('x') }; echo $x > secret.txt
.envファイルの使用を推奨します。.envファイルを使用しない場合は以下のコマンドをお試しください。
$ export SECRET="$(cat secret.txt)"
> powershell
> $env:SECRET="$(type secret.txt)"
> set /p SECRET= < secret.txt
- env PRIVATE_KEY
$ ssh-keygen -b 4096 -m PEM -t rsa -N '' -f id_rsa
> ssh-keygen -b 4096 -m PEM -t rsa -N "" -f id_rsa
.envファイルの使用を推奨します。.envファイルを使用しない場合は以下のコマンドをお試しください。
$ export PRIVATE_KEY="$(cat id_rsa)"
> powershell
> $env:PRIVATE_KEY="$(type id_rsa)"
> set /p PRIVATE_KEY= < id_rsa
StrawberryFields Express
Node.js 16 or Node.js 14
npm 8.1
Yarn 1.22
$ node -v
$ npm -v
$ yarn -v
- init command
$ npm i
- local command
- dev command
- prod command
$ npm start
StrawberryFields Fastify
Node.js 16 or Node.js 14
npm 8.1
Yarn 1.22
$ node -v
$ npm -v
$ yarn -v
- init command
$ npm i
- local command
- dev command
- prod command
$ npm start
StrawberryFields Flask
Python 3.8 or Python 3.10
pip 20.0.2
Pipenv 2022.1.8
$ python -V
$ pip -V
$ pipenv --version
- init command
$ pip install -r requirements.txt
- local command
$ gunicorn app:app -b 127.0.0.1:8080
$ flask run -h 127.0.0.1 -p 8080
- dev command
$ gunicorn app:app -b 0:8080
$ flask run -h 0.0.0.0 -p 8080
- prod command
$ gunicorn app:app
StrawberryFields FastAPI
Python 3.8 or Python 3.10
pip 20.0.2
Pipenv 2022.1.8
$ python -V
$ pip -V
$ pipenv --version
- init command
$ pip install -r requirements.txt
- local command
$ uvicorn app:app --host 127.0.0.1 --port 8080
- dev command
$ uvicorn app:app --host 0.0.0.0 --port 8080
- prod command
$ uvicorn app:app
StrawberryFields Lumen
PHP 7.4 or PHP 8.1
Composer 2.2
$ php -v
$ composer -V
- init command
$ composer i
$ php -r 'file_exists(".env") || copy(".env.example", ".env");'
- local command
$ php -S 127.0.0.1:8080 -t public public/index.php
- dev command
$ php -S 0.0.0.0:8080 -t public public/index.php
- prod command
$ vendor/bin/heroku-php-nginx public
以下のコマンドはすでに実行済みのため必要ありません。
$ composer create-project laravel/lumen strawberryfields_lumen
$ composer require guzzlehttp/guzzle
以下のファイル作成およびコード編集を行っています。
.gitlab-ci.yml
.gitpod.yml
LICENSE
Procfile
app/Http/Controllers/Followers.php
app/Http/Controllers/Following.php
app/Http/Controllers/Home.php
app/Http/Controllers/Inbox.php
app/Http/Controllers/Outbox.php
app/Http/Controllers/SSecret.php
app/Http/Controllers/UName.php
app/Http/Controllers/Webfinger.php
public/public/as.png
public/public/au.png
public/public/favicon.ico
public/public/favicon.png
public/public/logo.png
すでに作成されている以下のファイルのコード編集を行っています。
.env.example
.gitignore
README.md
composer.json
app/Exceptions/Handler.php
app/Http/Controllers/Controller.php
bootstrap/app.php
public/index.php
routes/web.php
また.env.example
の環境変数を
APP_ENV=local
APP_DEBUG=true
から
APP_ENV=production
APP_DEBUG=false
へ変更しています。
Commits Lumen
7790b596
Goでサーバー起動を行えるコミットです。0520b114
composer create-project laravel/lumen
を行った後、シークレットファイルの削除を行ったコミットです。Goでサーバー起動を行えますがLumenのサーバー起動時にエラーが発生します。cdf3aa13
Goを削除したのち設定ファイルの編集とシークレットファイルの自動生成コマンドを追加したコミットです。Lumenでサーバー起動を行えます。ac8761e4
以降composer require guzzlehttp/guzzle
を行った後、StrawberryFields Lumenの開発を行っています。
StrawberryFields Laravel
PHP 7.4 or PHP 8.1
Composer 2.2
$ php -v
$ composer -V
- init command
$ composer i
$ php -r 'file_exists(".env") || copy(".env.example", ".env");'
$ php artisan key:generate --ansi
- local command
$ php artisan serve --host 127.0.0.1 --port 8080
- dev command
$ php artisan serve --host 0.0.0.0 --port 8080
- prod command
$ vendor/bin/heroku-php-nginx public
以下のコマンドはすでに実行済みのため必要ありません。
$ composer create-project laravel/laravel strawberryfields_laravel
$ php artisan make:controller Home
$ php artisan make:controller UName
$ php artisan make:controller Inbox
$ php artisan make:controller Outbox
$ php artisan make:controller Following
$ php artisan make:controller Followers
$ php artisan make:controller SSecret
$ php artisan make:controller Webfinger
以下のファイル作成およびコード編集を行っています。
.gitlab-ci.yml
.gitpod.yml
LICENSE
Procfile
resources/views/errors/400.blade.php
resources/views/errors/404.blade.php
resources/views/errors/405.blade.php
resources/views/errors/500.blade.php
public/public/as.png
public/public/au.png
public/public/favicon.ico
public/public/favicon.png
public/public/logo.png
すでに作成されている以下のファイルのコード編集を行っています。
.env.example
.gitignore
README.md
composer.json
app/Http/Controllers/Controller.php
app/Http/Controllers/Followers.php
app/Http/Controllers/Following.php
app/Http/Controllers/Home.php
app/Http/Controllers/Inbox.php
app/Http/Controllers/Outbox.php
app/Http/Controllers/SSecret.php
app/Http/Controllers/UName.php
app/Http/Controllers/Webfinger.php
app/Http/Middleware/TrustProxies.php
app/Http/Middleware/VerifyCsrfToken.php
routes/web.php
また.env.example
の環境変数を
APP_ENV=local
APP_DEBUG=true
から
APP_ENV=production
APP_DEBUG=false
へ変更しています。
Commits Laravel
0fc4f7f1
Goでサーバー起動を行えるコミットです。69269f0f
composer create-project laravel/laravel
を行った後、シークレットファイルの削除を行ったコミットです。Goでサーバー起動を行えますがLaravelのサーバー起動時にエラーが発生します。b35af2b1
Goを削除したのち設定ファイルの編集とシークレットファイルの自動生成コマンドを追加したコミットです。Laravelでサーバー起動を行えます。5c45181f
以降StrawberryFields Laravelの開発を行っています。
StrawberryFields Sinatra
Ruby 2.7 or Ruby 3.0
gem 3.1
Bundler 2.3
$ ruby -v
$ gem -v
$ bundle -v
- init command
$ bundle install
- local command
$ bundle exec rackup config.ru -o 127.0.0.1 -p 8080
- dev command
$ bundle exec rackup config.ru -o 0.0.0.0 -p 8080
- prod command
$ bundle exec rackup config.ru
StrawberryFields Rails
Ruby 2.7 or Ruby 3.0
gem 3.1
Bundler 2.3
$ ruby -v
$ gem -v
$ bundle -v
- init command
$ bundle install
$ export SECRET_KEY_BASE="$(bundle exec rake secret)"
- local command
$ RAILS_ENV=production rails s -b 127.0.0.1 -p 8080
- dev command
$ RAILS_ENV=production rails s -b 0.0.0.0 -p 8080
- prod command
$ bundle exec puma -C config/puma.rb
以下のコマンドはすでに実行済みのため必要ありません。
$ gem install rails dotenv-rails http
$ rails new strawberryfields_rails --minimal
$ rails g controller Home
$ rails g controller UName
$ rails g controller Inbox
$ rails g controller Outbox
$ rails g controller Following
$ rails g controller Followers
$ rails g controller SSecret
$ rails g controller Webfinger
以下のファイル作成およびコード編集を行っています。
.env.example
.gitlab-ci.yml
.gitpod.yml
LICENSE
Procfile
public/400.html
public/405.html
public/public/as.png
public/public/au.png
public/public/favicon.ico
public/public/favicon.png
public/public/logo.png
すでに作成されている以下のファイルのコード編集を行っています。
.gitignore
Gemfile
README.md
app/controllers/application_controller.rb
app/controllers/followers_controller.rb
app/controllers/following_controller.rb
app/controllers/home_controller.rb
app/controllers/inbox_controller.rb
app/controllers/outbox_controller.rb
app/controllers/s_secret_controller.rb
app/controllers/u_name_controller.rb
app/controllers/webfinger_controller.rb
config/application.rb
config/puma.rb
config/routes.rb
config/environments/development.rb
またconfig/puma.rb
の変数を
port ENV.fetch('PORT') { 3000 }
environment ENV.fetch('RAILS_ENV') { 'development' }
から
port ENV.fetch('PORT') { 8080 }
environment ENV.fetch('RAILS_ENV') { 'production' }
へ変更しています。
Commits Rails
057c68e0
Goでサーバー起動を行えるコミットです。d27f6831
gem install rails
とrails new strawberryfields_rails --minimal
を行った後、シークレットファイルの削除を行ったコミットです。Goでサーバー起動を行えますがRailsのサーバー起動時にエラーが発生します。0829e225
Goを削除したのちgem install dotenv-rails
を行った後、設定ファイルの編集とシークレットファイルの自動生成コマンドを追加したコミットです。Railsでサーバー起動を行えます。e181f049
以降gem install http
を行った後、StrawberryFields Railsの開発を行っています。
StrawberryFields Gin
Go 1.18 or Go 1.16
$ go version
- init command
$ go mod vendor && go clean -modcache
- local command
- dev command
$ go run main.go
$ go build && ./strawberryfields-gin
- prod command
$ bin/strawberryfields-gin
StrawberryFields Django
Python 3.8 or Python 3.10
pip 20.0.2
Pipenv 2022.1.8
$ python -V
$ pip -V
$ pipenv --version
- init command
$ pip install -r requirements.txt
$ python manage.py migrate
$ export SECRET_KEY="$(python -c \"from django.core.management import utils; print(utils.get_random_secret_key())\")"
- local command
$ python manage.py runserver 127.0.0.1:8080 --insecure
- dev command
$ python manage.py runserver 0:8080 --insecure
- prod command
$ gunicorn strawberryfields_django.wsgi
以下のコマンドはすでに実行済みのため必要ありません。
$ pip install Django gunicorn python-dotenv cryptography requests
$ django-admin startproject strawberryfields_django
$ python manage.py startapp app
以下のファイル作成およびコード編集を行っています。
.gitignore
.gitlab-ci.yml
.gitpod.yml
.env.example
LICENSE
Procfile
README.md
requirements.txt
runtime.txt
secret.py
すでに作成されている以下のファイルのコード編集を行っています。
app/views.py
strawberryfields_django/settings.py
strawberryfields_django/urls.py
またstrawberryfields_django/settings.py
の変数を
DEBUG = True
から
DEBUG = False
へ変更しています。
Commits Django
4d500aca
Goでサーバー起動を行えるコミットです。64fdb014
最初にpip install Django gunicorn
を行った後、django-admin startproject strawberryfields_django
とpython manage.py startapp app
を行い、シークレットファイルの削除を行ったコミットです。Goでサーバー起動を行えますがDjangoのサーバー起動時にエラーが発生します。1d7374c1
Goを削除したのちpip install python-dotenv
を行った後、設定ファイルの編集とシークレットファイルの自動生成コマンドを追加したコミットです。Djangoでサーバー起動を行えます。bfc1da52
以降pip install cryptography requests
を行った後、StrawberryFields Djangoの開発を行っています。
StrawberryFields Spark
[RC]
Java 11 or Java 17
Maven 3.8
$ java --version
$ mvn -v
StrawberryFields Spring
[RC]
Java 11 or Java 17
Gradle 7.4
$ java --version
$ gradle -v
org.springframework.boot/spring-boot-dependencies
StrawberryFields Ktor
[Beta]
Kotlin 1.6 or Kotlin 1.5
Gradle 7.4
$
StrawberryFields Play
[Beta]
Scala 3.1 or Scala 2.13
sbt 1.6
$
StrawberryFields .NET
[Alpha]
C# 10 or C# 5
NuGet 6.0
$
StrawberryFields Actix
[Alpha]
Rust 1.56
Cargo 1.56
$
License
StrawberryFieldsはMIT Licenseです。
原文: opensource.org
日本語参考訳: licenses.opensource.jp
以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
上記の著作権表示および本許諾表示を、ソフトウェアのすべての複製または重要な部分に記載するものとします。
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。 作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
StrawberryFields Expressのライセンス記載例は以下のとおりです。
StrawberryFields Express: https://gitlab.com/acefed/strawberryfields-express (MIT License)
StrawberryFields Express: https://gitlab.com/acefed/strawberryfields-express
Copyright (c) 2020 Acefed
MIT License: https://opensource.org/licenses/MIT
[](https://gitlab.com/acefed/strawberryfields-express)
このような記載例の場合、
StrawberryFields Express: https://gitlab.com/acefed/strawberryfields-express
の代わりに、
StrawberryFields: https://acefed.gitlab.io/strawberryfields
を使用することができます。
https://gitlab.com/acefed
https://acefed.gitlab.io/
https://tkithrta.gitlab.io/