• Stars
    star
    111
  • Rank 313,213 (Top 7 %)
  • Language
    C#
  • License
    MIT License
  • Created over 6 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Mirror of: https://gitlab.aiursoft.cn/aiursoft/infrastructures

Aiursoft Infrastructures

MIT licensed Pipeline stat Test Coverage NuGet version (Aiursoft.Identity) Website

Aiursoft micro-services platform. Powered by ASP.NET Core.

What is Aiursoft Infrastructures

Aiursoft Infrastructures provides many valuable services and simplifies web application development.

Aiursoft Infrastructures is a project, runs at the application level, using micro-services design and powers all Aiursoft applications.

overview

Aiursoft Infrastructures provides a central platform for an entire enterprise. So the enterprise can focus on business app development.

The enterprise can deploy their dedicated instance of Aiursoft Infrastructures and build their apps with it.

Example apps

There are some example apps based on Aiursoft Infrastructures.

Features

How to deploy

Brief steps

  • Get a domain name. (Like aiursoft.com)
  • Get a new server.
  • Create DNS record.
  • Execute the install command on your server.

Get a server

Get a brand new Ubuntu 18.04 server.

  • Server must be Ubuntu 18.04. (20.04 and 16.04 is not supported)
  • Server must have a public IP address. (No local VM)
  • Server must have access to the global Internet. (Not Chinese network)

Azure, Vultr or DigitalOcean is suggested.

Install on a server

Create a wildcard domain record to your server's public IP.

Example: Resolve *.aiur.io to 123.123.123.123

Execute the following command on the server (Replace the instance.name to your own brand name):

curl -sL https://gitlab.aiursoft.cn/aiursoft/infrastructures/-/raw/master/install.sh | sudo bash -s aiur.io instance.name master

Upgrade your server

If we released a newer version, and you can upgrade your server via:

curl -sL https://gitlab.aiursoft.cn/aiursoft/infrastructures/-/raw/master/upgrade.sh | sudo bash -s instance.name master

Also, you can run that upgrade script to repair some issues with your Infrastructures instance.

The design of Infrastructures

Basic Services

The basic services are used to support the operation of the entire platform. It is the basis for the expansion of the subsequent infrastructure and user services throughout the platform. The basic services mainly include the user's authentication, authorization, application authentication, authorization, and allow the user's self-registration and self-registration of the application. At the same time, the underlying service is also responsible for the user's underlying data and the underlying data of the application, as well as the user's set of credentials and the set of credentials for the application.

Infrastructures

Infrastructure refers to some common software tools that the platform can provide on an infrastructure-based basis. Such software tools are similar to static file storage, object storage, CDN, message queues, caching, and the like. Such services need to be registered in the underlying service and use the application authentication service and the application authorization service to check if the visitor has permission to invoke the infrastructure.

Applications

Before discussing the user service layer, all of the underlying services and infrastructure we discussed were oriented toward other sub-services rather than user-oriented. Still, they only provided data interfaces for other service calls. Obviously, as a mature platform, developers and users should not implement the registration of services and the management of permissions by calling interfaces. Therefore, we need to develop additional programs that provide such a user-oriented terminal that allows users to operate through a concise interface and logic.

In addition to the user interface that OAuth itself needs to provide login, this layer should also provide more basic service in the microservice platform. According to the results of the needs analysis, there are account management services and developer center services in this layer. Both services rely on the infrastructure of the previous layer and provide user-oriented functionality.

Any high-level service is built on the micro-service platform. But the requirements they solve are actually based on the decisions of the companies that use the microservices platform. In other words, regardless of the company's decision-making to build search engines, forums, company homepages, feedback centers, recruitment centers, etc., the platform should be able to support. But the entire process of this part should follow the process followed by a separate software system.

How to run locally

Running the entire micro-service platform is very complicated and requires a lot of computing resources. Before you try to run the platform, we strongly suggest running only one specific service. Running one service is very easy and simple.

To run one service instance locally, execute dotnet run under which folder with the project file .csproj you want to run.

As for each one of the sub-projects in it is a simple ASP.NET Core web project. You can reference more documents via the official ASP.NET document for how to run:

https://docs.microsoft.com/en-us/aspnet/core/getting-started/?tabs=windows#run-the-app

Database

In debugging environment, we are using Microsoft SQL Server LocalDb by default. You can change the connection string in appsettings.json to use your own SQL Server instance.

In our production environment, we are using Microsoft SQL Server.

We are using Entity Framework Core to control our database. It supports different types of databases. So our services can switch between different databases easily.

How to contribute

The document is here.

More Repositories

1

Kahla.App

Kahla is a cross-platform business messaging app.
TypeScript
415
star
2

AiurVersionControl

Mirror of https://gitlab.aiursoft.cn/aiursoft/aiurversioncontrol
C#
72
star
3

Kahla

Mirror of https://gitlab.aiursoft.cn/aiursoft/Kahla
C#
70
star
4

Tracer

Tracer is a simple network speed test app. Deploy this on your server. Open your tracer on your browser. And you can test the speed between you and your server. Mirror of https://gitlab.aiursoft.cn/aiursoft/tracer
HTML
47
star
5

Dotlang

Mirror of https://gitlab.aiursoft.cn/aiursoft/Dotlang
C#
15
star
6

AiurDrive

AiurDrive is a free file sharing service. You can upload your files here and share them with others. Mirror of https://gitlab.aiursoft.cn/aiursoft/aiurdrive
C#
12
star
7

ECheersMQ

่ฟ™ๆ˜ฏไธ€ไธชๅฏไปฅ่ขซ็‹ฌ็ซ‹้ƒจ็ฝฒ่ฟ่กŒ็š„ๅฐๅž‹ๆถˆๆฏ้˜Ÿๅˆ—ใ€‚
C#
10
star
8

AiurUI

The front-end design system that powers Aiursoft
HTML
9
star
9

Kahla.CLI

A CLI implementation for Kahla API
Python
9
star
10

Kahla-Notify

A simple Android App that keep listening Kahla channel and notify you instantly.
Java
7
star
11

NugetNinja

Mirror of https://gitlab.aiursoft.cn/aiursoft/nugetninja
C#
6
star
12

AiurScript

A bash script library that powers Aiursoft on Ubuntu.
Shell
5
star
13

Kahla-TWA

The Google play store version of Kahla.
Java
5
star
14

Manhours

Mirror of https://gitlab.aiursoft.cn/aiursoft/manhours
C#
5
star
15

NiBot

A cli tool helps you to de-duplicate images in a folder.
C#
5
star
16

ChessServer

ChessServer is just a simple web-based chess server. Based on WebSocket. Can be played with sharing link with friends. No sign up required. Source at https://gitlab.aiursoft.cn/aiursoft/chessserver
C#
4
star
17

Scanner

Mirror of https://gitlab.aiursoft.cn/aiursoft/scanner
C#
4
star
18

StatHub

StatHub is a simple server stat statistics system. It can collect server stats and display them in a simple way. Mirror of https://gitlab.aiursoft.cn/aiursoft/stathub
C#
4
star
19

Warp

Mirror of https://gitlab.aiursoft.cn/aiursoft/warp
HTML
3
star
20

GptGateway

Mirror of https://gitlab.aiursoft.cn/aiursoft/gptgateway
C#
3
star
21

Box

Mirror of https://gitlab.aiursoft.cn/aiursoft/box
Shell
3
star
22

Static

Static is a simple static files HTTP server, as a global tool. Mirror of: https://gitlab.aiursoft.cn/aiursoft/static
C#
3
star
23

CppRunner

CppRunner is a simple Web app that can run code for you. It's based on .NET and Docker. With CppRunner, you can start testing a piece of code in seconds without setting up your environment. Now supports 15 languages. Mirror of: https://gitlab.aiursoft.cn/aiursoft/CppRunner
C#
3
star
24

Httping

Mirror of https://gitlab.aiursoft.cn/aiursoft/httping
C#
2
star
25

WebDav

Mirror of https://gitlab.aiursoft.cn/aiursoft/webdav
C#
2
star
26

Canon

Mirror of https://gitlab.aiursoft.cn/aiursoft/canon
C#
2
star
27

AiurObserver

Mirror of https://gitlab.aiursoft.cn/aiursoft/aiurobserver
C#
2
star
28

Safe-Windows

Mirror of https://gitlab.aiursoft.cn/aiursoft/safe-windows
PowerShell
2
star
29

IPMIController

Mirror of: https://gitlab.aiursoft.cn/aiursoft/ipmicontroller
C#
2
star
30

AutoDark.Js

Mirror of https://gitlab.aiursoft.cn/aiursoft/autodark.js
TypeScript
2
star
31

CommandFramework

A command-line application development framework. Mirror of https://gitlab.aiursoft.cn/aiursoft/CommandFramework
C#
2
star
32

AiurProtocol

Mirror of https://gitlab.aiursoft.cn/aiursoft/AiurProtocol
C#
1
star
33

CSTools

Mirror of https://gitlab.aiursoft.cn/aiursoft/CSTools
C#
1
star
34

WarpPrism

The core cms service for aiursoft web apps.
CSS
1
star
35

WingetCommunityServer

Mirror of https://gitlab.aiursoft.cn/aiursoft/WingetCommunityServer
C#
1
star
36

DotDownload

Mirror of https://gitlab.aiursoft.cn/aiursoft/dotdownload
C#
1
star