内容简介:A basic .NET Core website boilerplate using PostgreSQL for storage, Adminer for db management, Let's Encrypt for SSL certificates and Nginx for routing.For an explanation of the docker-compose file separation, take a look at.
netcore-postgres-oauth-boiler
A basic .NET Core website boilerplate using PostgreSQL for storage, Adminer for db management, Let's Encrypt for SSL certificates and Nginx for routing.
Features
-
Vanilla .NET Core Server Setup:
- Razor pages, upholstered with the Materialize css toolkit
- Server -> client data rendering demo
- Native Entity Framework database interface, with PostgreSQL
- Asynchronous design
- Auth gated route examples
-
User authentication via:
- Regular email/password
- Github
- Auth method merging, linking and unlinking of social auth accounts
-
TLS/HTTPS:
- Automatic certificate generation powered by Let's Encrypt
-
Hosting modes:
- Self hosted mode (443/80 port access required)
- Simple mode (just the Dockerfile, http only), for use with reverse proxy configurations
- A lightweight PostgreSQL management tool included - Adminer
Configuration
-
Open the docker-compose file you're going to use (depends on your platform) and set
CERTBOT_EMAIL
to your email for Let's Encrypt certificate generation. Moreover, setDOMAIN
to your domain name. The domain should point to the IP of the machine you're running this project on. -
The file
appsettingsExample.json
needs to be renamed toappsettings.json
with your own OAuth keys:
- The process for obtaining a Google key is described here .
- The method to create a Github app in order to get an API key is described here .
- The process for creating a Reddit app in order to get an API key is described here .
Running the boilerplate
- Standalone:
# clone the repo $ git clone https://github.com/Scharkee/netcore-postgres-oauth-boiler.git $ cd netcore-postgres-oauth-boiler # perform configuration... # generate TLS certificates and run on ports 80/443 # choose between docker-compose-linux.yml and docker-compose-windows.yml $ docker-compose -f docker-compose-linux.yml up
For an explanation of the docker-compose file separation, take a look at.
- Through Visual Studio:
- Launch Visual Studio
-
Right-click on the
docker-compose
section in the Solution Explorer, and clickSet as Startup Project
-
Select either Debug or Release at the top and click the
Docker Compose
button to run.
Overview of services
- Boilerplate runs on port 3000, and is accessible through the configured domain with managed TLS
- PostgreSQL runs on 5432
- Adminer (for managing PostgreSQL) runs and can be accessed on port 8080 (localhost:8080 in a browser).
- Nginx runs on ports 80 and 443. Make sure no servers/web hosts/etc. are using those ports.
Running the boilerplate independently
If you're behind Nginx or a similar reverse proxy setup, you can either:
- Adjust the compose file so it no longer contains the Nginx container
-
Run only the boilerplate (you will have to run PostgreSQL separately):
DefaultConnection docker build . --tag boiler docker run boiler -p 3000:80 --name boiler
Running on Windows
Docker on Windows has an open issue with local volume mapping permissions, which results in PostgreSQL not being able to write to a (relative) local directory. Thus, when running on Windows (via run.sh), an external volume is created, which is managed by Docker.
Moreover, if you encounter a PR_END_OF_FILE_ERROR when trying to load the website, try executing:
$ docker exec nginx bash -c "mv /etc/nginx/conf.d/boiler.conf{.nokey,} ; nginx -s reload"
This seems to be a symlink issue with Windows Docker containers as well. After renaming the file once, it does not need to be touched anymore (unless you purge the nginx container).
Information & Sources
- Documentation for ASP.NET Core can be found here: .NET Core docs.
- Read about PostgreSQL here: PostgreSQL.
- Guide for Materialize UI: Getting started with Materialize.
- C# Reference: C# docs.
Contribution & Support
Submit bugs and requests through the project's issue tracker:
License
This project is licensed under the terms of the MIT license.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
谷歌和亚马逊如何做产品
梅 (Chris Vander Mey) / 刘亦舟 / 人民邮电出版社 / 2014-6-1 / CNY 49.00
软件在交付之前,面临产品、方案、项目和工程管理等诸多挑战,如何做到游刃有余并打造出极致产品?本书作者曾任谷歌和亚马逊高级产品经理、现任Facebook产品经理,他将自己在达特茅斯学院钻研的理论知识和在领先的互联网公司十年的工作经验尽数总结在此,从定义产品开始,一步步指导你完成管理项目、迭代、发布、市场推广等交付流程,让你身临其境地体验到极致产品如何取得成功。 本书主要内容: 如何清晰定......一起来看看 《谷歌和亚马逊如何做产品》 这本书的介绍吧!
SHA 加密
SHA 加密工具
HEX HSV 转换工具
HEX HSV 互换工具