Add support for CleverCloud environment variables
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -1,3 +1,5 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
[[package]]
|
||||
name = "actix"
|
||||
version = "0.7.9"
|
||||
|
||||
4
post_build.sh
Executable file
4
post_build.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ -x ./bin/diesel ] || cargo install diesel_cli --no-default-features --features postgres --root .
|
||||
./bin/diesel setup --database-url "$POSTGRESQL_ADDON_URI"
|
||||
@@ -15,12 +15,21 @@ pub fn main() {
|
||||
env_logger::init();
|
||||
|
||||
dotenv().ok();
|
||||
let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set");
|
||||
let database_url = env::var("POSTGRESQL_ADDON_URI")
|
||||
.or(env::var("DATABASE_URL"))
|
||||
.expect("DATABASE_URL must be set");
|
||||
let port = env::var("PORT").unwrap_or("3000".to_string());
|
||||
|
||||
let mut listenfd = ListenFd::from_env();
|
||||
let sys = actix::System::new("callmeback");
|
||||
|
||||
let addr = SyncArbiter::start(3, move || DbExecutor::new(&database_url));
|
||||
let addr = SyncArbiter::start(
|
||||
env::var("DATABASE_CONNECTION_COUNT")
|
||||
.unwrap_or("1".to_string())
|
||||
.parse()
|
||||
.unwrap_or(1),
|
||||
move || DbExecutor::new(&database_url),
|
||||
);
|
||||
|
||||
let mut server = HttpServer::new(move || {
|
||||
callmeback::configure_app(App::with_state(callmeback::AppState { db: addr.clone() }))
|
||||
@@ -31,7 +40,7 @@ pub fn main() {
|
||||
server = if let Some(l) = listenfd.take_tcp_listener(0).unwrap() {
|
||||
server.listen(l)
|
||||
} else {
|
||||
server.bind("127.0.0.1:3000").unwrap()
|
||||
server.bind(format!("0.0.0.0:{}", port)).unwrap()
|
||||
};
|
||||
server.start();
|
||||
|
||||
|
||||
@@ -10,10 +10,10 @@ impl Actor for DbExecutor {
|
||||
|
||||
impl DbExecutor {
|
||||
pub fn new(database_url: &str) -> Self {
|
||||
DbExecutor(
|
||||
PgConnection::establish(database_url)
|
||||
.unwrap_or_else(|_| panic!("Error connecting to {}", database_url)),
|
||||
)
|
||||
DbExecutor(match PgConnection::establish(database_url) {
|
||||
Err(e) => panic!("Error connecting to {}: {}", database_url, e),
|
||||
Ok(c) => c,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user