A custom modular dotnet 5 webserver
Additional modules include:
- Chat system - SignalR live chat system
- Fileserver - Browse, Download, upload, view functionality
- Notes
- Weight tracker
- Library - Book cataloguing system
To activate a module for a user: log in to an adminstrator account and go to the admin-tools page. From here you can enable modules and additional features of those modules.
- Dotnet core 5
- Vue.js 2.6.11
- Vuetify.js 2.4.5
-
Clone repo
-
Create the following files in
./src/Server/VueServerbased on appsettings.json with the appropriate informationappsettings.development.jsonappsettings.production.json
-
Create the following files in
./src/Client/vue-server-uibased on.env.*with the appropriate information..env.development.local.env.production.local
-
Client code is in
./src/Client/vue-server-uifolder. Runnpm installin this folder to start.a) To run front-end server with hot-module replacement:
npm run serveb) To build front-end server
npm run build -
Server code is in
./src/Server/VueServerand is currently setup to run on port 7757 by default. This can now be changed in the configuration files:appsettings.*.json&config.*.env.json(the hostname and/or port must match).dotnet run --urls https://localhost:7757 -
Initialize database:
-
If running in dev mode and your plan is to use database migrations run the following commands in
./src/Server/VueServerfolder. These migrations will be places in the./Migrationsfolder from this relative path.-
dotnet ef migrations add InitialCreate --context [Insert Context Type here. See below] -
dotnet ef database update --context [Insert Context Type here. See below]
-
-
If running in production and you just want to setup the database once:
- ... Coming soon!
-
-
To build everything on windows 10 x64 and publish the app run
powershell .\build.ps1. This will place the output in the.\buildfolder.
- Dotnet 5
- Node.js 10.x+
- MS SQL Server / MySQL (optional)
-
In appsettings.json: Options.DatabaseType is either 1, 2, or 3 currently. Other database providers can be added later fairly easily.
1 = SQLite2 = MS SQL Server3 = MySQL
-
Database connection strings for each are something along the lines of this:
"WebServerDbConnectionString": "Data Source=database.db""WebServerDbConnectionString": "Server=YOUR_SERVER; Database=YOUR_DB; Trusted_Connection=true; MultipleActiveResultSets=true""WebServerDbConnectionString": "Server=127.0.0.1; Database=YOUR_DB; User=root; Password=MyMariaPassword;"
-
Currently FFMpeg is packaged with VueServer.Services project, but not included in the repo. You will need to download this from https://www.ffmpeg.org/download.html and put ffmpeg.exe and ffprobe.exe in the base level of VueServer.Services project folder.
-
System will be created with a default Adminstrator account called
admin. The password can be found in:./src/Server/Domain/Common/DomainConstants.csunder variableDEFAULT_PASSWORD -
Context Types:
SqliteWSContextSQLServerWSContextMySqlWSContext