You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.6 KiB
42 lines
1.6 KiB
import NIOSSL |
|
import Fluent |
|
import FluentMySQLDriver |
|
import Vapor |
|
|
|
// Configures your application |
|
public func configure(_ app: Application) async throws { |
|
app.middleware = .init() |
|
|
|
// Global user state management |
|
app.middleware.use(StateMiddleware()) |
|
app.manager = .init() |
|
|
|
// Error HTML pages or JSON responses |
|
app.middleware.use(CustomErrorMiddleware(environment: app.environment)) |
|
|
|
// Serve files from /Public folder |
|
app.middleware.use(FileMiddleware(publicDirectory: app.directory.publicDirectory)) |
|
|
|
// sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql |
|
// sudo systemctl enable mariadb.service |
|
// sudo systemctl start mariadb.service |
|
// sudo mariadb |
|
// > CREATE DATABASE riyyi; |
|
// > GRANT ALL ON riyyi.* TO 'riyyi'@'%' IDENTIFIED BY '123' WITH GRANT OPTION; |
|
// > GRANT ALL ON riyyi.* TO 'riyyi'@'localhost' IDENTIFIED BY '123' WITH GRANT OPTION; // % does NOT match localhost! |
|
// > FLUSH PRIVILEGES; |
|
|
|
app.databases.use(DatabaseConfigurationFactory.mysql( |
|
hostname: Environment.get("DATABASE_HOST") ?? "localhost", |
|
port: Environment.get("DATABASE_PORT").flatMap(Int.init(_:)) ?? MySQLConfiguration.ianaPortNumber, |
|
username: Environment.get("DATABASE_USERNAME") ?? "riyyi", |
|
password: Environment.get("DATABASE_PASSWORD") ?? "123", |
|
database: Environment.get("DATABASE_NAME") ?? "riyyi", |
|
tlsConfiguration: nil // Local connections dont need encryption |
|
), as: .mysql) |
|
|
|
app.migrations.add(CreateTodo()) |
|
|
|
// Register routes |
|
try routes(app) |
|
}
|
|
|