use acmex::config::Config;
use acmex::notifications::WebhookManager;
use acmex::prelude::*;
use acmex::server::start_server;
use std::net::SocketAddr;
use std::sync::Arc;
#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
let addr = SocketAddr::from(([127, 0, 0, 1], 8080));
let config = Arc::new(Config::default());
let acme_config = AcmeConfig::lets_encrypt_staging();
let client = Arc::new(AcmeClient::new(acme_config)?);
let webhook_manager = Arc::new(WebhookManager::new(vec![]));
let storage: Arc<dyn acmex::storage::StorageBackend> =
Arc::new(acmex::storage::MemoryStorage::new());
println!("Starting AcmeX API server on http://{}", addr);
println!("Try running: curl http://{}/health", addr);
start_server(
addr,
config,
Some(client),
Some(storage),
webhook_manager,
None, )
.await?;
Ok(())
}