shelf_letsencrypt

Last updated:

0 purchases

shelf_letsencrypt Image
shelf_letsencrypt Images
Add to Cart

Description:

shelf letsencrypt

shelf_letsencrypt #










shelf_letsencrypt brings support for Let's Encrypt to the shelf package.
Usage #
To use the LetsEncrypt class
import 'dart:io';

import 'package:shelf/shelf.dart';
import 'package:shelf_letsencrypt/shelf_letsencrypt.dart';

void main(List<String> args) async {
var domain = args[0]; // Domain for the HTTPS certificate.
var domainEmail = args[1];
var certificatesDirectory = args.length > 2 ? args[2] : null; // Optional argument.

certificatesDirectory ??= '/etc/letsencrypt/live'; // Default directory.

// The Certificate handler, storing at `certificatesDirectory`.
final certificatesHandler = CertificatesHandlerIO(Directory(certificatesDirectory));

// The Let's Encrypt integration tool in `staging` mode:
final LetsEncrypt letsEncrypt = LetsEncrypt(certificatesHandler, production: false);

// `shelf` Pipeline:
var pipeline = const Pipeline().addMiddleware(logRequests());
var handler = pipeline.addHandler(_processRequest);

var servers = await letsEncrypt.startSecureServer(
handler,
{domain: domainEmail},
port: 80,
securePort: 443,
);

var server = servers[0]; // HTTP Server.
var serverSecure = servers[1]; // HTTPS Server.

// Enable gzip:
server.autoCompress = true;
serverSecure.autoCompress = true;

print('Serving at http://${server.address.host}:${server.port}');
print('Serving at https://${serverSecure.address.host}:${serverSecure.port}');
}

Response _processRequest(Request request) {
return Response.ok('Requested: ${request.requestedUri}');
}
copied to clipboard
Source #
The official source code is hosted @ GitHub:

https://github.com/gmpassos/shelf_letsencrypt

Features and bugs #
Please file feature requests and bugs at the issue tracker.
Contribution #
Any help from the open-source community is always welcome and needed:

Found an issue?

Please fill a bug report with details.


Wish a feature?

Open a feature request with use cases.


Are you using and liking the project?

Promote the project: create an article, do a post or make a donation.


Are you a developer?

Fix a bug and send a pull request.
Implement a new feature.
Improve the Unit Tests.


Have you already helped in any way?

Many thanks from me, the contributors and everybody that uses this project!



If you donate 1 hour of your time, you can contribute a lot, because others will do the same, just be part and start
with your 1 hour.
TODO #

Add support for multiple HTTPS domains and certificates.
Add helper to generate self-signed certificates (for local tests).

Author #
Graciliano M. Passos: gmpassos@GitHub.
License #
Apache License - Version 2.0

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.