目次
Basolatoの設定は、3つの方法で定義されます。
config.nims
に書かれ、git管理され、コンパイル時に呼ばれるもの- 開発時は
.env
に、本番稼働時はサーバーの環境変数に定義され、git管理されず、実行時に呼ばれるもの Settings.new()
のインスタンスに記録され、git管理され、実行時に呼ばれるもの
変更を適用するには再度コンパイルする必要があります。
Sqlite
に接続するかどうかです。
PostgreSQL
に接続するかどうかです。
MySQL
に接続するかどうかです。
MariaDB
に接続するかどうかです。
セッションDBの種類です。file
、redis
のいずれかになります。
libsaas
を有効にし、ビューの中でSASS/SCSSを使えるようにするかどうかです。
サンプル config.nims
putEnv("DB_SQLITE", $true) # "true" or "false"
# putEnv("DB_POSTGRES", $true) # "true" or "false"
# putEnv("DB_MYSQL", $true) # "true" or "false"
# putEnv("DB_MARIADB", $true) # "true" or "false"
putEnv("SESSION_TYPE", "file") # "file" or "redis"
putEnv("USE_LIBSASS", $false) # "true" or "false"
変更を適用するには再度アプリケーションを起動してください。
セッションIDなどの暗号化に使われる100文字のキーです。
接続先RDBのデータベース名です。
RDBに接続するためのユーザー名です。
RDBに接続するためのパスワードです。
接続先RDBのホストです。Sqliteを使う場合にはファイルの絶対パス、MySQL, PostgreSQLを使う場合にはホスト
を指定してください。
接続先RDBの場所です。Sqliteを使う場合には空、MySQL, PostgreSQLを使う場合にはポート番号
を指定してください。
RDBに非同期接続する時に作るコネクションプールの数です。
アプリケーションをマルチスレッドで動かす場合には、「接続可能数 / スレッド数」になるようにしてください。
接続先セッションDBの場所です。
ファイルセッションを使う場合にはファイルの絶対パスを、Redisを使う場合にはホスト:ポート
を設定してください。
クッキーを発行する対象ドメインを設定してください。
サンプル .env
# Secret
SECRET_KEY="GRzV3jfgN8BgFhtiyoLV1aTNE6Evh9r1GLkpBpUCpioXy6ifo10fEL846MTRrd3cpOHMKsYCs1hNQDDYJ3NEOs2mEPYTemU3iGnm"
# DB Connection
DB_DATABASE="database" # sqlite file path or database name
DB_USER="user"
DB_PASSWORD="password"
DB_HOST="127.0.0.1" # host ip address
DB_PORT=5432 # postgres default...5432, mysql default...3306
DB_MAX_CONNECTION=95 # should be smaller than (DB max connection / running num processes)
DB_TIMEOUT=30 # secounds
# Session db
# Session type, file or redis, is defined in config.nims
SESSION_DB_PATH="./session.db" # Session file path or redis host:port. ex:"127.0.0.1:6379"
COOKIE_DOMAINS="" # to specify multiple domains, "sample.com, sample.org"
実行時に呼ばれ、環境変数に設定すべき値のような機密情報でないものは、Settings.new()
で定義します。
起動するサーバーのホスト名です。
起動するサーバーのポート番号です。
ログをターミナルに表示するならtrue
を、しないならfalse
を設定してください。
ログをファイル出力するならtrue
を、しないならfalse
を設定してください。
エラーログをファイル出力するならtrue
を、しないならfalse
を設定してください。
ログ出力先ディレクトリの絶対パスです。
セッションタイムアウトになる期限を分で設定してください。
ブラウザを閉じた時にセッションを自動的に削除する場合はtrueを設定してください。
バリデーションメッセージを表示する言語です。
言語 | 環境変数 |
---|---|
英語 | en |
日本語 | ja |
サンプルコード main.nim
import basolato
let routs = @[
Route.get("/", example_controller.index)
]
let settings = Settings.new(
host = "127.0.0.1",
port = 8000,
# Logging
logToConsole = true,
logToFile = false,
errorLogToFile = false,
logDir = "./logs",
# Session db
sessionTime = 120, # default 120, minutes of 2 hours
sessionExpireOnClose = false,
# other
locale = "en",
)
serve(routes, settings)