url değişimi

This commit is contained in:
Sedat ÖZTÜRK 2025-05-06 14:03:45 +03:00
parent 32a19578cb
commit 3cf85f9bbb
56 changed files with 207 additions and 204 deletions

View file

@ -17,6 +17,9 @@
`dotnet ef migrations remove` `dotnet ef migrations remove`
`dotnet ef database update "20240822114716_ABP_822"` `dotnet ef database update "20240822114716_ABP_822"`
- SQL Veritabanını Entity Class oluştur.
`dotnet ef dbcontext scaffold "Server=SERVERNAME;Database=DBNAME;User ID=USERNAME;Password=PASSWORD;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer --context MyDbContext --output-dir Models --data-annotations --force`
# Public Api # Public Api
``` ```
@ -25,7 +28,7 @@ POST /connect/token HTTP/1.1
Host: localhost:44344 Host: localhost:44344
Content-Type: application/x-www-form-urlencoded Content-Type: application/x-www-form-urlencoded
username=sedat%40kadifeteks.com username=system%40sozsoft.com
&password=... &password=...
&grant_type=password &grant_type=password
&client_id=Platform_PublicApi &client_id=Platform_PublicApi
@ -36,7 +39,7 @@ username=sedat%40kadifeteks.com
- Normal facebook üyeliği yapılır. - Normal facebook üyeliği yapılır.
- https://developers.facebook.com/ sitesinden yeni developer üyeliği oluşturulur. Developer üyeliği seçilir. - https://developers.facebook.com/ sitesinden yeni developer üyeliği oluşturulur. Developer üyeliği seçilir.
- CreateApp butonu ile yeni uygulama oluşturulur. Uygulama adı belirlenir. 'Sozsoft Messenger' - CreateApp butonu ile yeni uygulama oluşturulur. Uygulama adı belirlenir. 'Kurs Messenger'
- AppType olarak İşletme seçilir ve App oluşturulur. - AppType olarak İşletme seçilir ve App oluşturulur.
- Add Products kısmında WhatsApp seçilir ve Business Account oluşturulur. - Add Products kısmında WhatsApp seçilir ve Business Account oluşturulur.
- 3 noktadan (menüden) WhatsApp Manager sayfasına gidilir. Manage Templates seçilir, istenirse yeni template oluşturulur. 'hello_world' - 3 noktadan (menüden) WhatsApp Manager sayfasına gidilir. Manage Templates seçilir, istenirse yeni template oluşturulur. 'hello_world'

View file

@ -209,7 +209,7 @@ POST /connect/token HTTP/1.1
Host: localhost:44344 Host: localhost:44344
Content-Type: application/x-www-form-urlencoded Content-Type: application/x-www-form-urlencoded
username=sedat%40kadifeteks.com username=system%40sozsoft.com
&password=... &password=...
&grant_type=password &grant_type=password
&client_id=Platform_PublicApi &client_id=Platform_PublicApi
@ -257,8 +257,8 @@ string Params = [
] ]
string Sql -> SELECT * FROM VSatislar WHERE MusteriId = @MusteriId AND StartDate >= @StartDate string Sql -> SELECT * FROM VSatislar WHERE MusteriId = @MusteriId AND StartDate >= @StartDate
string Permissions = [ string Permissions = [
{ ResourceType: 'User', ResourceId: 'system' },
{ ResourceType: 'User', ResourceId: 'sedat' }, { ResourceType: 'User', ResourceId: 'sedat' },
{ ResourceType: 'User', ResourceId: 'vedat' },
] ]
Query Parameter Query Parameter

View file

@ -53,7 +53,7 @@ public class ListFormsSeeder : IDataSeedContributor, ITransientDependency
var lookupQueryLanguage = $"SELECT \"{DbTablePrefix}LanguageKey\".\"Key\", CONCAT(\"{DbTablePrefix}LanguageKey\".\"Key\", ' (', \"{DbTablePrefix}LanguageText\".\"Value\", ')') AS \"Name\" FROM \"{DbTablePrefix}LanguageKey\" LEFT OUTER JOIN \"{DbTablePrefix}LanguageText\" ON \"{DbTablePrefix}LanguageKey\".\"Key\" = \"{DbTablePrefix}LanguageText\".\"Key\" AND \"{DbTablePrefix}LanguageKey\".\"ResourceName\" = \"{DbTablePrefix}LanguageText\".\"ResourceName\" WHERE \"{DbTablePrefix}LanguageKey\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"CultureName\" = 'tr' ORDER BY \"{DbTablePrefix}LanguageKey\".\"Key\";"; var lookupQueryLanguage = $"SELECT \"{DbTablePrefix}LanguageKey\".\"Key\", CONCAT(\"{DbTablePrefix}LanguageKey\".\"Key\", ' (', \"{DbTablePrefix}LanguageText\".\"Value\", ')') AS \"Name\" FROM \"{DbTablePrefix}LanguageKey\" LEFT OUTER JOIN \"{DbTablePrefix}LanguageText\" ON \"{DbTablePrefix}LanguageKey\".\"Key\" = \"{DbTablePrefix}LanguageText\".\"Key\" AND \"{DbTablePrefix}LanguageKey\".\"ResourceName\" = \"{DbTablePrefix}LanguageText\".\"ResourceName\" WHERE \"{DbTablePrefix}LanguageKey\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"IsDeleted\" = 'false' AND \"{DbTablePrefix}LanguageText\".\"CultureName\" = 'tr' ORDER BY \"{DbTablePrefix}LanguageKey\".\"Key\";";
var lookupQueryCulture = $"SELECT \"CultureName\" AS \"Key\", \"DisplayName\" AS \"Name\", \"CreationTime\" FROM \"{DbTablePrefix}Language\" WHERE \"IsEnabled\" = 'true' and \"IsDeleted\" = 'false'"; var lookupQueryCulture = $"SELECT \"CultureName\" AS \"Key\", \"DisplayName\" AS \"Name\", \"CreationTime\" FROM \"{DbTablePrefix}Language\" WHERE \"IsEnabled\" = 'true' and \"IsDeleted\" = 'false'";
var adminUser = _identityUserManager.FindByNameAsync("admin"); var adminUser = _identityUserManager.FindByNameAsync(PlatformConsts.AbpIdentity.User.AdminEmailDefaultValue);
string roleId = null; string roleId = null;
string userId = null; string userId = null;

View file

@ -27,7 +27,7 @@ public class NotificationRuleSeeder : IDataSeedContributor, ITransientDependency
new() { new() {
NotificationType = NotificationTypes.YeniSiparis, NotificationType = NotificationTypes.YeniSiparis,
RecipientType = NotificationRecipientTypes.Role, RecipientType = NotificationRecipientTypes.Role,
RecipientId = "admin", RecipientId = PlatformConsts.AbpIdentity.User.AdminRoleName,
Channel = NotificationChannels.UiActivity, Channel = NotificationChannels.UiActivity,
IsActive = true, IsActive = true,
IsFixed = false, IsFixed = false,
@ -36,7 +36,7 @@ public class NotificationRuleSeeder : IDataSeedContributor, ITransientDependency
new() { new() {
NotificationType = NotificationTypes.SiparisPasla, NotificationType = NotificationTypes.SiparisPasla,
RecipientType = NotificationRecipientTypes.Role, RecipientType = NotificationRecipientTypes.Role,
RecipientId = "admin", RecipientId = PlatformConsts.AbpIdentity.User.AdminRoleName,
Channel = NotificationChannels.Desktop, Channel = NotificationChannels.Desktop,
IsActive = true, IsActive = true,
IsFixed = false, IsFixed = false,
@ -45,7 +45,7 @@ public class NotificationRuleSeeder : IDataSeedContributor, ITransientDependency
new() { new() {
NotificationType = NotificationTypes.YeniKullanici, NotificationType = NotificationTypes.YeniKullanici,
RecipientType = NotificationRecipientTypes.Role, RecipientType = NotificationRecipientTypes.Role,
RecipientId = "admin", RecipientId = PlatformConsts.AbpIdentity.User.AdminRoleName,
Channel = NotificationChannels.Rocket, Channel = NotificationChannels.Rocket,
IsActive = true, IsActive = true,
IsFixed = false, IsFixed = false,

View file

@ -83,7 +83,7 @@ public class PlatformIdentityDataSeeder : IdentityDataSeeder
adminUser.SetEmailConfirmed(true); adminUser.SetEmailConfirmed(true);
adminUser.SetIsVerified(true); adminUser.SetIsVerified(true);
adminUser.SetRocketUsername("sedat.ozturk"); adminUser.SetRocketUsername(PlatformConsts.AbpIdentity.User.AdminEmailDefaultValue);
adminUser.SetPhoneNumber(PlatformConsts.AbpIdentity.User.AdminPhoneNumberDefaultValue, true); adminUser.SetPhoneNumber(PlatformConsts.AbpIdentity.User.AdminPhoneNumberDefaultValue, true);
(await UserManager.CreateAsync(adminUser, adminPassword, validatePassword: false)).CheckErrors(); (await UserManager.CreateAsync(adminUser, adminPassword, validatePassword: false)).CheckErrors();

View file

@ -3,7 +3,7 @@
{ {
"code": "Default", "code": "Default",
"dataSourceType": 2, "dataSourceType": 2,
"connectionString": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Platform;" "connectionString": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Demo;"
} }
] ]
} }

View file

@ -3,7 +3,7 @@
{ {
"code": "Default", "code": "Default",
"dataSourceType": 2, "dataSourceType": 2,
"connectionString": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Platform;" "connectionString": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Demo;"
} }
] ]
} }

View file

@ -4080,7 +4080,7 @@
{ {
"code": "Default", "code": "Default",
"dataSourceType": 2, "dataSourceType": 2,
"connectionString": "User ID=sa;Password=NvQp8s@l;Host=localhost;Port=5432;Database=Platform;" "connectionString": "User ID=sa;Password=NvQp8s@l;Host=localhost;Port=5432;Database=Demo;"
}, },
{ {
"code": "KIM", "code": "KIM",
@ -4191,7 +4191,7 @@
"code": "App.SiteManagement.General.NewMemberNotificationEmails", "code": "App.SiteManagement.General.NewMemberNotificationEmails",
"nameKey": "App.SiteManagement.General.NewMemberNotificationEmails", "nameKey": "App.SiteManagement.General.NewMemberNotificationEmails",
"descriptionKey": "App.SiteManagement.General.NewMemberNotificationEmails.Description", "descriptionKey": "App.SiteManagement.General.NewMemberNotificationEmails.Description",
"defaultValue": "sedat@sozsoft.com", "defaultValue": "system@sozsoft.com",
"isVisibleToClients": false, "isVisibleToClients": false,
"providers": ["G", "D"], "providers": ["G", "D"],
"isInherited": false, "isInherited": false,
@ -4207,7 +4207,7 @@
"code": "App.SiteManagement.General.TimedLoginEmails", "code": "App.SiteManagement.General.TimedLoginEmails",
"nameKey": "App.SiteManagement.General.TimedLoginEmails", "nameKey": "App.SiteManagement.General.TimedLoginEmails",
"descriptionKey": "App.SiteManagement.General.TimedLoginEmails.Description", "descriptionKey": "App.SiteManagement.General.TimedLoginEmails.Description",
"defaultValue": "sedat@sozsoft.com", "defaultValue": "system@sozsoft.com",
"isVisibleToClients": false, "isVisibleToClients": false,
"providers": ["G", "D"], "providers": ["G", "D"],
"isInherited": false, "isInherited": false,
@ -4335,7 +4335,7 @@
"code": "App.Sender.Rocket.Url", "code": "App.Sender.Rocket.Url",
"nameKey": "App.Sender.Rocket.Url", "nameKey": "App.Sender.Rocket.Url",
"descriptionKey": "App.Sender.Rocket.Url.Description", "descriptionKey": "App.Sender.Rocket.Url.Description",
"defaultValue": "https://chat.sozsoft.net/api/v1", "defaultValue": "https://chat.sozsoft.com/api/v1",
"isVisibleToClients": false, "isVisibleToClients": false,
"providers": ["G", "D", "T"], "providers": ["G", "D", "T"],
"isInherited": false, "isInherited": false,
@ -4399,7 +4399,7 @@
"code": "Abp.Mailing.DefaultFromAddress", "code": "Abp.Mailing.DefaultFromAddress",
"nameKey": "Abp.Mailing.DefaultFromAddress", "nameKey": "Abp.Mailing.DefaultFromAddress",
"descriptionKey": "Abp.Mailing.DefaultFromAddress.Description", "descriptionKey": "Abp.Mailing.DefaultFromAddress.Description",
"defaultValue": "sedat@sozsoft.com", "defaultValue": "system@sozsoft.com",
"isVisibleToClients": false, "isVisibleToClients": false,
"providers": ["G", "D", "T"], "providers": ["G", "D", "T"],
"isInherited": false, "isInherited": false,
@ -4415,7 +4415,7 @@
"code": "Abp.Mailing.Smtp.UserName", "code": "Abp.Mailing.Smtp.UserName",
"nameKey": "Abp.Mailing.Smtp.UserName", "nameKey": "Abp.Mailing.Smtp.UserName",
"descriptionKey": "Abp.Mailing.Smtp.UserName.Description", "descriptionKey": "Abp.Mailing.Smtp.UserName.Description",
"defaultValue": "sedat@sozsoft.com", "defaultValue": "system@sozsoft.com",
"isVisibleToClients": false, "isVisibleToClients": false,
"providers": ["G", "D", "T"], "providers": ["G", "D", "T"],
"isInherited": false, "isInherited": false,

View file

@ -1,7 +1,7 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
// "Default": "Server=sql;Database=Platform;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;" // "Default": "Server=sql;Database=Demo;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;"
"Default": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Platform;" "Default": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Demo;"
}, },
"Redis": { "Redis": {
"IsEnabled": "true", "IsEnabled": "true",
@ -12,21 +12,21 @@
"Platform_Web": { "Platform_Web": {
"ClientId": "Platform_Web", "ClientId": "Platform_Web",
"ClientSecret": "1q2w3e*", "ClientSecret": "1q2w3e*",
"RootUrl": "https://platform-dev-api.sozsoft.net" "RootUrl": "https://platform-dev-api.sozsoft.com"
}, },
"Platform_App": { "Platform_App": {
"ClientId": "Platform_App", "ClientId": "Platform_App",
"RootUrl": "https://platform-dev.sozsoft.net", "RootUrl": "https://platform-dev.sozsoft.com",
"TokenLifeTime": 2, "TokenLifeTime": 2,
"RefreshTokenLifeTime": 8760 "RefreshTokenLifeTime": 8760
}, },
"Platform_Swagger": { "Platform_Swagger": {
"ClientId": "Platform_Swagger", "ClientId": "Platform_Swagger",
"RootUrl": "https://platform-dev-api.sozsoft.net" "RootUrl": "https://platform-dev-api.sozsoft.com"
}, },
"Platform_PublicApi": { "Platform_PublicApi": {
"ClientId": "Platform_PublicApi", "ClientId": "Platform_PublicApi",
"RootUrl": "https://platform-dev.sozsoft.net", "RootUrl": "https://platform-dev.sozsoft.com",
"TokenLifeTime": 2, "TokenLifeTime": 2,
"RefreshTokenLifeTime": 8760 "RefreshTokenLifeTime": 8760
} }

View file

@ -1,7 +1,7 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
// "Default": "Server=sql;Database=Platform;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;" // "Default": "Server=sql;Database=Demo;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;"
"Default": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Platform;" "Default": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Demo;"
}, },
"Redis": { "Redis": {
"IsEnabled": "true", "IsEnabled": "true",
@ -12,21 +12,21 @@
"Platform_Web": { "Platform_Web": {
"ClientId": "Platform_Web", "ClientId": "Platform_Web",
"ClientSecret": "1q2w3e*", "ClientSecret": "1q2w3e*",
"RootUrl": "https://platform-api.sozsoft.net" "RootUrl": "https://platform-api.sozsoft.com"
}, },
"Platform_App": { "Platform_App": {
"ClientId": "Platform_App", "ClientId": "Platform_App",
"RootUrl": "https://platform.sozsoft.net", "RootUrl": "https://platform.sozsoft.com",
"TokenLifeTime": 2, "TokenLifeTime": 2,
"RefreshTokenLifeTime": 8760 "RefreshTokenLifeTime": 8760
}, },
"Platform_Swagger": { "Platform_Swagger": {
"ClientId": "Platform_Swagger", "ClientId": "Platform_Swagger",
"RootUrl": "https://platform-api.sozsoft.net" "RootUrl": "https://platform-api.sozsoft.com"
}, },
"Platform_PublicApi": { "Platform_PublicApi": {
"ClientId": "Platform_PublicApi", "ClientId": "Platform_PublicApi",
"RootUrl": "https://platform.sozsoft.net", "RootUrl": "https://platform.sozsoft.com",
"TokenLifeTime": 2, "TokenLifeTime": 2,
"RefreshTokenLifeTime": 8760 "RefreshTokenLifeTime": 8760
} }

View file

@ -1,8 +1,8 @@
{ {
"Seed": false, "Seed": false,
"ConnectionStrings": { "ConnectionStrings": {
// "Default": "Server=localhost;Database=Platform;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;" // "Default": "Server=localhost;Database=Demo;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;"
"Default": "User ID=sa;Password=NvQp8s@l;Host=localhost;Port=5432;Database=Platform;" "Default": "User ID=sa;Password=NvQp8s@l;Host=localhost;Port=5432;Database=Demo;"
}, },
"Redis": { "Redis": {
"IsEnabled": "true", "IsEnabled": "true",

View file

@ -64,7 +64,7 @@ public static class PlatformConsts
public const string AdminRoleName = "admin"; public const string AdminRoleName = "admin";
public const string AdminNameDefaultValue = "Sedat"; public const string AdminNameDefaultValue = "Sedat";
public const string AdminSurNameDefaultValue = "ÖZTÜRK"; public const string AdminSurNameDefaultValue = "ÖZTÜRK";
public const string AdminEmailDefaultValue = "sedat@sozsoft.com"; public const string AdminEmailDefaultValue = "system@sozsoft.com";
public const string AdminPasswordDefaultValue = "1q2w3E*"; public const string AdminPasswordDefaultValue = "1q2w3E*";
public const string AdminPhoneNumberDefaultValue = "05449476346"; public const string AdminPhoneNumberDefaultValue = "05449476346";
} }

View file

@ -1,22 +1,22 @@
{ {
"App": { "App": {
"SelfUrl": "https://platform-dev-api.sozsoft.net", "SelfUrl": "https://platform-dev-api.sozsoft.com",
"ClientUrl": "https://platform-dev.sozsoft.net", "ClientUrl": "https://platform-dev.sozsoft.com",
"CorsOrigins": "https://platform-dev.sozsoft.net", "CorsOrigins": "https://platform-dev.sozsoft.com",
"RedirectAllowedUrls": "https://platform-dev.sozsoft.net,https://platform-dev.sozsoft.net/authentication/callback", "RedirectAllowedUrls": "https://platform-dev.sozsoft.com,https://platform-dev.sozsoft.com/authentication/callback",
"AttachmentsPath": "/etc/api/mail-queue/attachments", "AttachmentsPath": "/etc/api/mail-queue/attachments",
"CdnPath": "/etc/api/cdn" "CdnPath": "/etc/api/cdn"
}, },
"ConnectionStrings": { "ConnectionStrings": {
// "Default": "Server=sql;Database=Platform;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;" // "Default": "Server=sql;Database=Demo;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;"
"Default": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Platform;" "Default": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Demo;"
}, },
"Redis": { "Redis": {
"IsEnabled": "true", "IsEnabled": "true",
"Configuration": "redis:6379,abortConnect=false,connectTimeout=30000,responseTimeout=30000" "Configuration": "redis:6379,abortConnect=false,connectTimeout=30000,responseTimeout=30000"
}, },
"AuthServer": { "AuthServer": {
"Authority": "https://platform-dev-api.sozsoft.net", "Authority": "https://platform-dev-api.sozsoft.com",
"RequireHttpsMetadata": false, "RequireHttpsMetadata": false,
"SwaggerClientId": "Platform_Swagger" "SwaggerClientId": "Platform_Swagger"
}, },

View file

@ -1,22 +1,22 @@
{ {
"App": { "App": {
"SelfUrl": "https://platform-api.sozsoft.net", "SelfUrl": "https://platform-api.sozsoft.com",
"ClientUrl": "https://platform.sozsoft.net", "ClientUrl": "https://platform.sozsoft.com",
"CorsOrigins": "https://platform.sozsoft.net", "CorsOrigins": "https://platform.sozsoft.com",
"RedirectAllowedUrls": "https://platform.sozsoft.net,https://platform.sozsoft.net/authentication/callback", "RedirectAllowedUrls": "https://platform.sozsoft.com,https://platform.sozsoft.com/authentication/callback",
"AttachmentsPath": "/etc/api/mail-queue/attachments", "AttachmentsPath": "/etc/api/mail-queue/attachments",
"CdnPath": "/etc/api/cdn" "CdnPath": "/etc/api/cdn"
}, },
"ConnectionStrings": { "ConnectionStrings": {
// "Default": "Server=sql;Database=Platform;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;" // "Default": "Server=sql;Database=Demo;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;"
"Default": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Platform;" "Default": "User ID=sa;Password=NvQp8s@l;Host=postgres;Port=5432;Database=Demo;"
}, },
"Redis": { "Redis": {
"IsEnabled": "true", "IsEnabled": "true",
"Configuration": "redis:6379,abortConnect=false,connectTimeout=30000,responseTimeout=30000" "Configuration": "redis:6379,abortConnect=false,connectTimeout=30000,responseTimeout=30000"
}, },
"AuthServer": { "AuthServer": {
"Authority": "https://platform-api.sozsoft.net", "Authority": "https://platform-api.sozsoft.com",
"RequireHttpsMetadata": false, "RequireHttpsMetadata": false,
"SwaggerClientId": "Platform_Swagger" "SwaggerClientId": "Platform_Swagger"
}, },

View file

@ -4,13 +4,13 @@
"ClientUrl": "http://localhost:3000", "ClientUrl": "http://localhost:3000",
"CorsOrigins": "http://localhost,http://localhost:3000,http://localhost:4200,http://localhost:5173", "CorsOrigins": "http://localhost,http://localhost:3000,http://localhost:4200,http://localhost:5173",
"RedirectAllowedUrls": "http://localhost:4200,http://localhost:4200/authentication/callback", "RedirectAllowedUrls": "http://localhost:4200,http://localhost:4200/authentication/callback",
"AttachmentsPath": "C:\\Projects\\kurs\\kurs-platform\\configs\\mail-queue\\attachments", "AttachmentsPath": "C:\\Private\\Projects\\kurs-platform\\configs\\mail-queue\\attachments",
"CdnPath": "C:\\Projects\\kurs\\kurs-platform\\configs\\docker\\data\\cdn", "CdnPath": "C:\\Private\\Projects\\kurs-platform\\configs\\docker\\data\\cdn",
"Version": "1.0.4" "Version": "1.0.4"
}, },
"ConnectionStrings": { "ConnectionStrings": {
// "Default": "Server=localhost;Database=Platform;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;" // "Default": "Server=localhost;Database=Demo;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;"
"Default": "User ID=sa;Password=NvQp8s@l;Host=localhost;Port=5432;Database=Platform;" "Default": "User ID=sa;Password=NvQp8s@l;Host=localhost;Port=5432;Database=Demo;"
}, },
"Redis": { "Redis": {
"IsEnabled": "true", "IsEnabled": "true",

View file

@ -16,8 +16,8 @@ public class DynamicDataRepository_Tests : PlatformEntityFrameworkCoreTestBase
{ {
private readonly DbContext _context; private readonly DbContext _context;
private readonly DbContext _context2; private readonly DbContext _context2;
private readonly string ConnectionString = "Server=localhost;Database=PlatformTests;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;"; private readonly string ConnectionString = "Server=localhost;Database=DemoTests;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;";
private readonly string ConnectionString2 = "Server=localhost;Database=PlatformTests2;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;"; private readonly string ConnectionString2 = "Server=localhost;Database=DemoTests2;User Id=sa;password=NvQp8s@l;Trusted_Connection=False;TrustServerCertificate=True;";
public DynamicDataRepository_Tests() public DynamicDataRepository_Tests()
{ {

View file

@ -19,19 +19,19 @@ Host PlatformProd
# 2. Altyapı # 2. Altyapı
1. DevOps 1. DevOps
- devops.sozsoft.net - devops.sozsoft.com
- 192.168.1.6 - 192.168.1.6
- kurs:ChatR+... - kurs:ChatR+...
1. Dev 1. Dev
- platform-dev-cdn.sozsoft.net - platform-dev-cdn.sozsoft.com
- platform-dev-api.sozsoft.net - platform-dev-api.sozsoft.com
- platform-dev.sozsoft.net - platform-dev.sozsoft.com
- 192.168.1.106 - 192.168.1.106
- kurs:ChatR+... - kurs:ChatR+...
1. Prod 1. Prod
- platform-cdn.sozsoft.net - platform-cdn.sozsoft.com
- platform-api.sozsoft.net - platform-api.sozsoft.com
- platform.sozsoft.net - platform.sozsoft.com
- 192.168.1.137 - 192.168.1.137
- kurs:ChatR+... - kurs:ChatR+...
@ -63,22 +63,22 @@ Buradaki maddeler tüm makinalarda başlangıçta yapılır.
## 3.3. Sertifika alma ## 3.3. Sertifika alma
certbot ile otomatik sertifika bu şekilde alınıyor. Ancak 3 ayda bir aşağıdaki komutları manuel çalıştırıp üretilen txt yi DNS sozsoft.net domaine eklememiz gerekiyor. Bu işlemi otomatize edilebilecek şekilde reha bey ile görüşülecektir. certbot ile otomatik sertifika bu şekilde alınıyor. Ancak 3 ayda bir aşağıdaki komutları manuel çalıştırıp üretilen txt yi DNS sozsoft.com domaine eklememiz gerekiyor. Bu işlemi otomatize edilebilecek şekilde reha bey ile görüşülecektir.
``` ```
sudo apt-get remove certbot sudo apt-get remove certbot
sudo snap install --classic certbot sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --manual --preferred-challenges=dns --email sedat@sozsoft.com --agree-tos -d sozsoft.net -d *.sozsoft.net sudo certbot certonly --manual --preferred-challenges=dns --email system@sozsoft.com --agree-tos -d sozsoft.com -d *.sozsoft.com
sudo su sudo su
cd /etc/letsencrypt/archive cd /etc/letsencrypt/archive
chgrp docker -R sozsoft.net chgrp docker -R sozsoft.com
chown kurs -R sozsoft.net chown kurs -R sozsoft.com
``` ```
Sertifika ortam makinalarına manuel olarak kopyalanır Sertifika ortam makinalarına manuel olarak kopyalanır
- DevOps makinasından sertifikalar indirilir (indirmek için sudo su, cp -R /etc/letsencrypt/archive/sozsoft.net /home/kurs) - DevOps makinasından sertifikalar indirilir (indirmek için sudo su, cp -R /etc/letsencrypt/archive/sozsoft.com /home/kurs)
- Ortam makinasına /home/kurs klasörüne yüklenir - Ortam makinasına /home/kurs klasörüne yüklenir
# 4. DevOps Makina Kurulumu # 4. DevOps Makina Kurulumu
@ -102,7 +102,7 @@ DevOps platformu olarak, Forgejo, Gitea, OneDev, Harness gibi alternatifler değ
"uuid": "8407f0f8-f296-46af-adba-5ee88ffdfccd", "uuid": "8407f0f8-f296-46af-adba-5ee88ffdfccd",
"name": "devops", "name": "devops",
"token": "39f9af97febdd8ea131a3a65c4710e7682a79635", "token": "39f9af97febdd8ea131a3a65c4710e7682a79635",
"address": "https://devops.sozsoft.net", "address": "https://devops.sozsoft.com",
"labels": ["devops:docker://code.forgejo.org/oci/alpine:3"] "labels": ["devops:docker://code.forgejo.org/oci/alpine:3"]
} }
``` ```
@ -118,7 +118,7 @@ DevOps platformu olarak, Forgejo, Gitea, OneDev, Harness gibi alternatifler değ
- daemon.json ~/forgejo-runner klasörüne kopyalanmalı - daemon.json ~/forgejo-runner klasörüne kopyalanmalı
```json ```json
{ {
"insecure-registries": ["devops.sozsoft.net"] "insecure-registries": ["devops.sozsoft.com"]
} }
``` ```
- ardından docker-compose-forgejo-runner.yml içerisine docker-in-docker kısmına şu volume eklenmeli - ardından docker-compose-forgejo-runner.yml içerisine docker-in-docker kısmına şu volume eklenmeli
@ -131,8 +131,8 @@ DevOps platformu olarak, Forgejo, Gitea, OneDev, Harness gibi alternatifler değ
```ini ```ini
[server] [server]
APP_DATA_PATH = /data/gitea APP_DATA_PATH = /data/gitea
DOMAIN = devops.sozsoft.net DOMAIN = devops.sozsoft.com
SSH_DOMAIN = devops.sozsoft.net SSH_DOMAIN = devops.sozsoft.com
DISABLE_SSH = false DISABLE_SSH = false
SSH_PORT = 222 SSH_PORT = 222
SSH_LISTEN_PORT = 22 SSH_LISTEN_PORT = 22
@ -141,7 +141,7 @@ DevOps platformu olarak, Forgejo, Gitea, OneDev, Harness gibi alternatifler değ
OFFLINE_MODE = true OFFLINE_MODE = true
PROTOCOL=https PROTOCOL=https
HTTP_PORT = 443 HTTP_PORT = 443
ROOT_URL = https://devops.sozsoft.net/ ROOT_URL = https://devops.sozsoft.com/
CERT_FILE = /etc/ssl/cert1.pem CERT_FILE = /etc/ssl/cert1.pem
KEY_FILE = /etc/ssl/privkey1.pem KEY_FILE = /etc/ssl/privkey1.pem
``` ```
@ -151,27 +151,27 @@ DevOps platformu olarak, Forgejo, Gitea, OneDev, Harness gibi alternatifler değ
- Base image build ve push - Base image build ve push
```sh ```sh
docker build -t devops.sozsoft.net/sozsoft/base-image:latest -f Kurs.WorkflowBaseImage.Dockerfile . docker build -t devops.sozsoft.com/kurs/base-image:latest -f Kurs.WorkflowBaseImage.Dockerfile .
docker push devops.sozsoft.net/sozsoft/base-image:latest docker push devops.sozsoft.com/kurs/base-image:latest
``` ```
- Docker login işlemi "bot" kullanıcı ile yapılır. SSH yapılır. `docker login devops.sozsoft.net` - Docker login işlemi "bot" kullanıcı ile yapılır. SSH yapılır. `docker login devops.sozsoft.com`
- Git kurulumu - Git kurulumu
- Aşağıdaki komut ile SSH anahtarı oluşturulur. Passphrase boş geçilerek oluşturulabilir. - Aşağıdaki komut ile SSH anahtarı oluşturulur. Passphrase boş geçilerek oluşturulabilir.
```sh ```sh
cd ~/ cd ~/
ssh-keygen -t ed25519 -C "platformdev/prod@sozsoft.net" ssh-keygen -t ed25519 -C "platformdev/prod@sozsoft.com"
``` ```
- Yukarıdaki komutun çıktısı olan ".pub" dosyasıdır. Bu dosyanın içeriği devops.sozsoft.net repository nin Deploy key sekmesine eklenir. - Yukarıdaki komutun çıktısı olan ".pub" dosyasıdır. Bu dosyanın içeriği devops.sozsoft.com repository nin Deploy key sekmesine eklenir.
`cat ~/.ssh/id_ed25519.pub` `cat ~/.ssh/id_ed25519.pub`
- https://devops.sozsoft.net/Sozsoft/kurs-platform/settings/keys kısmına Add New Key diyerek yapıştırılır. - https://devops.sozsoft.com/Kurs/kurs-platform/settings/keys kısmına Add New Key diyerek yapıştırılır.
- Aşağıdaki komutlar sırasıyla çalıştırılır. - Aşağıdaki komutlar sırasıyla çalıştırılır.
```sh ```sh
git clone ssh://git@devops.sozsoft.net:222/Sozsoft/kurs-platform.git git clone ssh://git@devops.sozsoft.com:222/Kurs/kurs-platform.git
git config http.sslVerify false # Eğer lazım olursa kullanılabilir git config http.sslVerify false # Eğer lazım olursa kullanılabilir
``` ```
@ -188,7 +188,7 @@ docker push devops.sozsoft.net/sozsoft/base-image:latest
# CERT_FILE = /etc/ssl/cert1.pem # CERT_FILE = /etc/ssl/cert1.pem
# KEY_FILE = /etc/ssl/privkey1.pem # KEY_FILE = /etc/ssl/privkey1.pem
``` ```
- Kurulumdan sonra default olarak Starter Plan ile başlıyor. https://chat.sozsoft.net/admin/subscription adresine giderek "Cancel Subscription"a basılmalı, böylece Community Edition kullanılamya başlanacaktır. - Kurulumdan sonra default olarak Starter Plan ile başlıyor. https://chat.sozsoft.com/admin/subscription adresine giderek "Cancel Subscription"a basılmalı, böylece Community Edition kullanılamya başlanacaktır.
- Setup Wizard'da admin kullanıcı olarak sedat.ozturk ve 1q... parolası seçilmiştir. - Setup Wizard'da admin kullanıcı olarak sedat.ozturk ve 1q... parolası seçilmiştir.
# 5. Dev - Prod Ortam Makinaları Kurulumu # 5. Dev - Prod Ortam Makinaları Kurulumu
@ -199,7 +199,7 @@ Yeni bir ortam makina kurulumunda bir defaya mahsus yapılacaktır.
- docker-compose-dev/production.yml dosyası hazırlanır. - docker-compose-dev/production.yml dosyası hazırlanır.
- ui için env.dev/production hazırlanır. - ui için env.dev/production hazırlanır.
- Yukarıda **Git Kurulumu** maddesinde adımlar izlenir. - Yukarıda **Git Kurulumu** maddesinde adımlar izlenir.
- Docker login işlemi "bot" kullanıcı ile yapılır. SSH yapılır. `docker login devops.sozsoft.net` - Docker login işlemi "bot" kullanıcı ile yapılır. SSH yapılır. `docker login devops.sozsoft.com`
- cd ~/kurs-platform/configs/deployment klasöründe komut çalıştırılır. `docker compose -f ./docker-compose-data.yml up -d` - cd ~/kurs-platform/configs/deployment klasöründe komut çalıştırılır. `docker compose -f ./docker-compose-data.yml up -d`
# 6. Deployment # 6. Deployment
@ -238,26 +238,26 @@ git checkout master/branch
git fetch && git pull git fetch && git pull
cd ~/kurs-platform/api cd ~/kurs-platform/api
docker build \ docker build \
-t devops.sozsoft.net/sozsoft/kurs-platform-api:1.0.0 \ -t devops.sozsoft.com/kurs/kurs-platform-api:1.0.0 \
-t devops.sozsoft.net/sozsoft/kurs-platform-api:latest \ -t devops.sozsoft.com/kurs/kurs-platform-api:latest \
-f Kurs.Platform.HttpApi.Host.Dockerfile . -f Kurs.Platform.HttpApi.Host.Dockerfile .
docker push devops.sozsoft.net/sozsoft/kurs-platform-api:1.0.0 docker push devops.sozsoft.com/kurs/kurs-platform-api:1.0.0
docker push devops.sozsoft.net/sozsoft/kurs-platform-api:latest docker push devops.sozsoft.com/kurs/kurs-platform-api:latest
docker build \ docker build \
-t devops.sozsoft.net/sozsoft/kurs-platform-migrator:1.0.0 \ -t devops.sozsoft.com/kurs/kurs-platform-migrator:1.0.0 \
-t devops.sozsoft.net/sozsoft/kurs-platform-migrator:latest \ -t devops.sozsoft.com/kurs/kurs-platform-migrator:latest \
-f Kurs.Platform.DbMigrator.Dockerfile . -f Kurs.Platform.DbMigrator.Dockerfile .
docker push devops.sozsoft.net/sozsoft/kurs-platform-migrator:1.0.0 docker push devops.sozsoft.com/kurs/kurs-platform-migrator:1.0.0
docker push devops.sozsoft.net/sozsoft/kurs-platform-migrator:latest docker push devops.sozsoft.com/kurs/kurs-platform-migrator:latest
cd ~/kurs-platform/ui cd ~/kurs-platform/ui
docker build \ docker build \
-t devops.sozsoft.net/sozsoft/kurs-platform-ui:1.0.0 \ -t devops.sozsoft.com/kurs/kurs-platform-ui:1.0.0 \
-t devops.sozsoft.net/sozsoft/kurs-platform-ui:latest \ -t devops.sozsoft.com/kurs/kurs-platform-ui:latest \
-f Kurs.Platform.Ui.Dockerfile --build-arg ENV=dev . -f Kurs.Platform.Ui.Dockerfile --build-arg ENV=dev .
docker push devops.sozsoft.net/sozsoft/kurs-platform-ui:1.0.0 docker push devops.sozsoft.com/kurs/kurs-platform-ui:1.0.0
docker push devops.sozsoft.net/sozsoft/kurs-platform-ui:latest docker push devops.sozsoft.com/kurs/kurs-platform-ui:latest
``` ```
### Dev-Prod Ortam Makinaları ### Dev-Prod Ortam Makinaları
@ -280,16 +280,16 @@ docker compose -f docker-compose-app.yml -f docker-compose-app.dev.yml up -d
## 7.1.Komutlar ## 7.1.Komutlar
- docker build -t devops.sozsoft.net/sozsoft/kurs-platform-api:1.0.0 -f Kurs.Platform.HttpApi.Host.Dockerfile . - docker build -t devops.sozsoft.com/kurs/kurs-platform-api:1.0.0 -f Kurs.Platform.HttpApi.Host.Dockerfile .
- docker build -t devops.sozsoft.net/sozsoft/kurs-platform-migrator:1.0.0 -f Kurs.Platform.DbMigrator.Dockerfile . - docker build -t devops.sozsoft.com/kurs/kurs-platform-migrator:1.0.0 -f Kurs.Platform.DbMigrator.Dockerfile .
- docker build -t devops.sozsoft.net/sozsoft/kurs-platform-ui:1.0.0 -f Kurs.Platform.Ui.Dockerfile --build-arg ENV=dev . - docker build -t devops.sozsoft.com/kurs/kurs-platform-ui:1.0.0 -f Kurs.Platform.Ui.Dockerfile --build-arg ENV=dev .
- docker run -it --entrypoint /bin/sh kurs-platform-api - docker run -it --entrypoint /bin/sh kurs-platform-api
- docker run -it --entrypoint /bin/sh --network kurs-platform_default kurs-platform-api --env ASPNETCORE_ENVIRONMENT=Development --port 8080:80 - docker run -it --entrypoint /bin/sh --network kurs-platform_default kurs-platform-api --env ASPNETCORE_ENVIRONMENT=Development --port 8080:80
- docker run -it --entrypoint /bin/sh --network kurs-platform_default --env ASPNETCORE_ENVIRONMENT=Development kurs-platform-migrator - docker run -it --entrypoint /bin/sh --network kurs-platform_default --env ASPNETCORE_ENVIRONMENT=Development kurs-platform-migrator
- docker login devops.sozsoft.net - docker login devops.sozsoft.com
- docker push devops.sozsoft.net/sozsoft/kurs-platform-api:1.0.0 - docker push devops.sozsoft.com/kurs/kurs-platform-api:1.0.0
- docker push devops.sozsoft.net/sozsoft/kurs-platform-migrator:1.0.0 - docker push devops.sozsoft.com/kurs/kurs-platform-migrator:1.0.0
- docker push devops.sozsoft.net/sozsoft/kurs-platform-ui:1.0.0 - docker push devops.sozsoft.com/kurs/kurs-platform-ui:1.0.0
## 7.2. SSL olmayan registry'e bağlanma ## 7.2. SSL olmayan registry'e bağlanma
@ -297,7 +297,7 @@ docker compose -f docker-compose-app.yml -f docker-compose-app.dev.yml up -d
cd ~/ cd ~/
touch daemon.json touch daemon.json
{ {
"insecure-registries": ["devops.sozsoft.net"] "insecure-registries": ["devops.sozsoft.com"]
} }
sudo cp daemon.json /etc/docker sudo cp daemon.json /etc/docker
sudo systemctl stop docker sudo systemctl stop docker

View file

@ -9,10 +9,10 @@ server {
server { server {
listen 443 ssl http2; listen 443 ssl http2;
server_name devops.sozsoft.net; server_name devops.sozsoft.com;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://forgejo; proxy_pass http://forgejo;
@ -29,10 +29,10 @@ server {
server { server {
listen 443 ssl; listen 443 ssl;
server_name chat.sozsoft.net; server_name chat.sozsoft.com;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://rocket_chat; proxy_pass http://rocket_chat;
@ -49,10 +49,10 @@ server {
server { server {
listen 443 ssl; listen 443 ssl;
server_name ai.sozsoft.net; server_name ai.sozsoft.com;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://n8n:5678; proxy_pass http://n8n:5678;

View file

@ -1,12 +1,12 @@
server { server {
listen 80; listen 80;
listen 443 ssl http2; listen 443 ssl http2;
server_name platform-dev.sozsoft.net; server_name platform-dev.sozsoft.com;
underscores_in_headers on; underscores_in_headers on;
ignore_invalid_headers off; ignore_invalid_headers off;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://ui; proxy_pass http://ui;
@ -19,10 +19,10 @@ server {
server { server {
listen 80; listen 80;
listen 443 ssl; listen 443 ssl;
server_name platform-dev-api.sozsoft.net; server_name platform-dev-api.sozsoft.com;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://api:8080/; proxy_pass http://api:8080/;
@ -35,10 +35,10 @@ server {
server { server {
listen 80; listen 80;
listen 443 ssl; listen 443 ssl;
server_name platform-dev-cdn.sozsoft.net; server_name platform-dev-cdn.sozsoft.com;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://cdn:8080; proxy_pass http://cdn:8080;

View file

@ -1,12 +1,12 @@
server { server {
listen 80; listen 80;
listen 443 ssl http2; listen 443 ssl http2;
server_name platform.sozsoft.net; server_name platform.sozsoft.com;
underscores_in_headers on; underscores_in_headers on;
ignore_invalid_headers off; ignore_invalid_headers off;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://ui; proxy_pass http://ui;
@ -19,10 +19,10 @@ server {
server { server {
listen 80; listen 80;
listen 443 ssl; listen 443 ssl;
server_name platform-api.sozsoft.net; server_name platform-api.sozsoft.com;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://api:8080/; proxy_pass http://api:8080/;
@ -35,10 +35,10 @@ server {
server { server {
listen 80; listen 80;
listen 443 ssl; listen 443 ssl;
server_name platform-cdn.sozsoft.net; server_name platform-cdn.sozsoft.com;
ssl_certificate /etc/ssl/sozsoft.net/cert1.pem; ssl_certificate /etc/ssl/sozsoft.com/cert1.pem;
ssl_certificate_key /etc/ssl/sozsoft.net/privkey1.pem; ssl_certificate_key /etc/ssl/sozsoft.com/privkey1.pem;
location / { location / {
proxy_pass http://cdn:8080; proxy_pass http://cdn:8080;

View file

@ -12,7 +12,7 @@ services:
environment: environment:
- ASPNETCORE_ENVIRONMENT=Dev - ASPNETCORE_ENVIRONMENT=Dev
ui: ui:
image: devops.sozsoft.net/sozsoft/kurs-platform-ui:dev-latest image: devops.sozsoft.com/kurs/kurs-platform-ui:dev-latest
restart: always restart: always
cdn: cdn:
restart: always restart: always

View file

@ -12,7 +12,7 @@ services:
environment: environment:
- ASPNETCORE_ENVIRONMENT=Production - ASPNETCORE_ENVIRONMENT=Production
ui: ui:
image: devops.sozsoft.net/sozsoft/kurs-platform-ui:production-latest image: devops.sozsoft.com/kurs/kurs-platform-ui:production-latest
restart: always restart: always
cdn: cdn:
restart: always restart: always

View file

@ -12,7 +12,7 @@ volumes:
services: services:
migrator: migrator:
image: devops.sozsoft.net/sozsoft/kurs-platform-migrator:latest image: devops.sozsoft.com/kurs/kurs-platform-migrator:latest
profiles: ["migrator"] profiles: ["migrator"]
environment: environment:
- ASPNETCORE_ENVIRONMENT=Dev - ASPNETCORE_ENVIRONMENT=Dev
@ -21,7 +21,7 @@ services:
- kurs-platform-data_db - kurs-platform-data_db
- kurs-platform-data_log - kurs-platform-data_log
api: api:
image: devops.sozsoft.net/sozsoft/kurs-platform-api:latest image: devops.sozsoft.com/kurs/kurs-platform-api:latest
profiles: ["app"] profiles: ["app"]
environment: environment:
- ASPNETCORE_ENVIRONMENT=Dev - ASPNETCORE_ENVIRONMENT=Dev
@ -33,7 +33,7 @@ services:
- cdn:/etc/api/cdn - cdn:/etc/api/cdn
- api-keys:/root/.aspnet/DataProtection-Keys - api-keys:/root/.aspnet/DataProtection-Keys
ui: ui:
image: devops.sozsoft.net/sozsoft/kurs-platform-ui:latest image: devops.sozsoft.com/kurs/kurs-platform-ui:latest
profiles: ["app"] profiles: ["app"]
networks: networks:
- default - default
@ -56,4 +56,4 @@ services:
- 443:443 - 443:443
volumes: volumes:
- ./configs/nginx.conf:/etc/nginx/conf.d/default.conf - ./configs/nginx.conf:/etc/nginx/conf.d/default.conf
- ~/sozsoft.net:/etc/ssl/sozsoft.net:ro - ~/sozsoft.com:/etc/ssl/sozsoft.com:ro

View file

@ -19,7 +19,7 @@ services:
- ./data:/data - ./data:/data
- /etc/timezone:/etc/timezone:ro - /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
- /etc/letsencrypt/archive/sozsoft.net:/etc/ssl:ro - /etc/letsencrypt/archive/sozsoft.com:/etc/ssl:ro
ports: ports:
- "80:80" - "80:80"
- "443:443" - "443:443"

View file

@ -26,7 +26,7 @@ services:
- 443:443 - 443:443
volumes: volumes:
- ./configs/nginx-devops.conf:/etc/nginx/conf.d/default.conf - ./configs/nginx-devops.conf:/etc/nginx/conf.d/default.conf
- ~/sozsoft.net:/etc/ssl/sozsoft.net:ro - ~/sozsoft.com:/etc/ssl/sozsoft.com:ro
depends_on: depends_on:
- forgejo - forgejo
- rocket_mongodb - rocket_mongodb
@ -59,7 +59,7 @@ services:
environment: environment:
MONGO_URL: "mongodb://bot:JT74Sb2Tb3@rocket_mongodb:27017/rocketchat?authSource=admin&replicaSet=rs0" MONGO_URL: "mongodb://bot:JT74Sb2Tb3@rocket_mongodb:27017/rocketchat?authSource=admin&replicaSet=rs0"
MONGO_OPLOG_URL: "mongodb://bot:JT74Sb2Tb3@rocket_mongodb:27017/local?authSource=admin&replicaSet=rs0" MONGO_OPLOG_URL: "mongodb://bot:JT74Sb2Tb3@rocket_mongodb:27017/local?authSource=admin&replicaSet=rs0"
ROOT_URL: https://chat.sozsoft.net ROOT_URL: https://chat.sozsoft.com
PORT: 80 PORT: 80
DEPLOY_METHOD: docker DEPLOY_METHOD: docker
depends_on: depends_on:
@ -98,7 +98,7 @@ services:
- N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin - N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=NvQp8s@l - N8N_BASIC_AUTH_PASSWORD=NvQp8s@l
- N8N_HOST=ai.sozsoft.net - N8N_HOST=ai.sozsoft.com
- N8N_PORT=5678 - N8N_PORT=5678
- NODE_ENV=production - NODE_ENV=production
- GENERIC_TIMEZONE=Europe/Istanbul - GENERIC_TIMEZONE=Europe/Istanbul

View file

@ -10,8 +10,8 @@ VERSION=$(cat ~/kurs-platform/api/src/Kurs.Platform.HttpApi.Host/appsettings.jso
| sed 's/"//g') | sed 's/"//g')
docker build \ docker build \
-t devops.sozsoft.net/sozsoft/kurs-platform-api:${VERSION} \ -t devops.sozsoft.com/kurs/kurs-platform-api:${VERSION} \
-t devops.sozsoft.net/sozsoft/kurs-platform-api:latest \ -t devops.sozsoft.com/kurs/kurs-platform-api:latest \
-f Kurs.Platform.HttpApi.Host.Dockerfile . -f Kurs.Platform.HttpApi.Host.Dockerfile .
docker push devops.sozsoft.net/sozsoft/kurs-platform-api:${VERSION} docker push devops.sozsoft.com/kurs/kurs-platform-api:${VERSION}
docker push devops.sozsoft.net/sozsoft/kurs-platform-api:latest docker push devops.sozsoft.com/kurs/kurs-platform-api:latest

View file

@ -4,8 +4,8 @@ git fetch && git pull
cd api cd api
docker build \ docker build \
-t devops.sozsoft.net/sozsoft/kurs-platform-migrator:1.0.0 \ -t devops.sozsoft.com/kurs/kurs-platform-migrator:1.0.0 \
-t devops.sozsoft.net/sozsoft/kurs-platform-migrator:latest \ -t devops.sozsoft.com/kurs/kurs-platform-migrator:latest \
-f Kurs.Platform.DbMigrator.Dockerfile . -f Kurs.Platform.DbMigrator.Dockerfile .
docker push devops.sozsoft.net/sozsoft/kurs-platform-migrator:1.0.0 docker push devops.sozsoft.com/kurs/kurs-platform-migrator:1.0.0
docker push devops.sozsoft.net/sozsoft/kurs-platform-migrator:latest docker push devops.sozsoft.com/kurs/kurs-platform-migrator:latest

View file

@ -12,8 +12,8 @@ VERSION=$(cat package.json \
| sed 's/^.* //' \ | sed 's/^.* //' \
| sed 's/"//g') | sed 's/"//g')
docker build \ docker build \
-t devops.sozsoft.net/sozsoft/kurs-platform-ui:${ENV}-${VERSION} \ -t devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-${VERSION} \
-t devops.sozsoft.net/sozsoft/kurs-platform-ui:${ENV}-latest \ -t devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-latest \
-f Kurs.Platform.Ui.Dockerfile --build-arg ENV=${ENV} . -f Kurs.Platform.Ui.Dockerfile --build-arg ENV=${ENV} .
docker push devops.sozsoft.net/sozsoft/kurs-platform-ui:${ENV}-${VERSION} docker push devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-${VERSION}
docker push devops.sozsoft.net/sozsoft/kurs-platform-ui:${ENV}-latest docker push devops.sozsoft.com/kurs/kurs-platform-ui:${ENV}-latest

View file

@ -11,7 +11,7 @@ services:
- N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin - N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=NvQp8s@l - N8N_BASIC_AUTH_PASSWORD=NvQp8s@l
- N8N_HOST=api.sozsoft.net - N8N_HOST=api.sozsoft.com
- N8N_PORT=5678 - N8N_PORT=5678
- NODE_ENV=production - NODE_ENV=production
- GENERIC_TIMEZONE=Europe/Istanbul - GENERIC_TIMEZONE=Europe/Istanbul

View file

@ -11,4 +11,4 @@ VITE_API_URL='https://localhost:44344/'
API_ROOTNAMESPACE='Kurs.Platform' API_ROOTNAMESPACE='Kurs.Platform'
VITE_CDN_URL='http://localhost:4005' VITE_CDN_URL='http://localhost:4005'
VITE_REACT_APP_VERSION=$npm_package_version VITE_REACT_APP_VERSION=$npm_package_version
VITE_AI_URL='https://ai.sozsoft.net/webhook/' VITE_AI_URL='https://ai.sozsoft.com/webhook/'

View file

@ -1,12 +1,12 @@
APPLICATION_BASEURL='https://platform-dev.sozsoft.net' APPLICATION_BASEURL='https://platform-dev.sozsoft.com'
APPLICATION_NAME='Platform' APPLICATION_NAME='Platform'
APPLICATION_LOGOURL='' APPLICATION_LOGOURL=''
OAUTH_ISSUER='https://platform-dev-api.sozsoft.net' OAUTH_ISSUER='https://platform-dev-api.sozsoft.com'
OAUTH_REDIRECTURI='https://platform-dev.sozsoft.net' OAUTH_REDIRECTURI='https://platform-dev.sozsoft.com'
OAUTH_CLIENTID='Platform_App' OAUTH_CLIENTID='Platform_App'
OAUTH_RESPONSETYPE='code' OAUTH_RESPONSETYPE='code'
OAUTH_SCOPE='offline_access Platform' OAUTH_SCOPE='offline_access Platform'
OAUTH_REQUIREHTTPS=true OAUTH_REQUIREHTTPS=true
VITE_API_URL='https://platform-dev-api.sozsoft.net/' VITE_API_URL='https://platform-dev-api.sozsoft.com/'
API_ROOTNAMESPACE='Kurs.Platform' API_ROOTNAMESPACE='Kurs.Platform'
VITE_CDN_URL='https://platform-dev-cdn.sozsoft.net' VITE_CDN_URL='https://platform-dev-cdn.sozsoft.com'

View file

@ -1,12 +1,12 @@
APPLICATION_BASEURL='https://platform.sozsoft.net' APPLICATION_BASEURL='https://platform.sozsoft.com'
APPLICATION_NAME='Platform' APPLICATION_NAME='Platform'
APPLICATION_LOGOURL='' APPLICATION_LOGOURL=''
OAUTH_ISSUER='https://platform-api.sozsoft.net' OAUTH_ISSUER='https://platform-api.sozsoft.com'
OAUTH_REDIRECTURI='https://platform.sozsoft.net' OAUTH_REDIRECTURI='https://platform.sozsoft.com'
OAUTH_CLIENTID='Platform_App' OAUTH_CLIENTID='Platform_App'
OAUTH_RESPONSETYPE='code' OAUTH_RESPONSETYPE='code'
OAUTH_SCOPE='offline_access Platform' OAUTH_SCOPE='offline_access Platform'
OAUTH_REQUIREHTTPS=true OAUTH_REQUIREHTTPS=true
VITE_API_URL='https://platform-api.sozsoft.net/' VITE_API_URL='https://platform-api.sozsoft.com/'
API_ROOTNAMESPACE='Kurs.Platform' API_ROOTNAMESPACE='Kurs.Platform'
VITE_CDN_URL='https://platform-cdn.sozsoft.net' VITE_CDN_URL='https://platform-cdn.sozsoft.com'

View file

@ -82,7 +82,7 @@ define(['./workbox-54d0af47'], (function (workbox) { 'use strict';
"revision": "3ca0b8505b4bec776b69afdba2768812" "revision": "3ca0b8505b4bec776b69afdba2768812"
}, { }, {
"url": "index.html", "url": "index.html",
"revision": "0.jp130trvbeg" "revision": "0.85ufv4pqo4o"
}], {}); }], {});
workbox.cleanupOutdatedCaches(); workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View file

@ -23,9 +23,9 @@ const Cover = ({ children, content, ...rest }: CoverProps) => {
Jump start your project with Elstar Jump start your project with Elstar
</h3> </h3>
<p className="text-lg text-white opacity-80 max-w-[700px]"> <p className="text-lg text-white opacity-80 max-w-[700px]">
Kurs fabrics are designed to meet all international quality From interactive desktop applications to immersive web and mobile
and safety-standards and customer requirements. Our products solutions, we exist to meet your needs today and ensure continued
are tested both in house and in internationally accredited laboratories. success tomorrow.
</p> </p>
</div> </div>
<span className="text-white"> <span className="text-white">

View file

@ -23,15 +23,15 @@ const Side = ({ children, content, ...rest }: SideProps) => {
<Avatar <Avatar
className="border-2 border-white" className="border-2 border-white"
shape="circle" shape="circle"
src="/img/avatars/thumb-8.jpg" src="/img/others/cto.png"
/> />
<div className="text-white"> <div className="text-white">
<div className="font-semibold text-base">Sedat ÖZTÜRK</div> <div className="font-semibold text-base">Sedat ÖZTÜRK</div>
<span className="opacity-80">CTO, Onward</span> <span className="opacity-80">CTO</span>
</div> </div>
</div> </div>
<p className="text-lg text-white opacity-80"> <p className="text-lg text-white opacity-80">
Kurs fabrics are designed to meet all international quality and safety-standards and customer requirements. Our products are tested both in house and in internationally accredited laboratories. From interactive desktop applications to immersive web and mobile solutions, we exist to meet your needs today and ensure continued success tomorrow.
</p> </p>
</div> </div>
<span className="text-white"> <span className="text-white">

View file

@ -264,7 +264,7 @@ const Assistant = () => {
<div className="text-center text-gray-500 mt-8"> <div className="text-center text-gray-500 mt-8">
<Bot className="w-12 h-12 mx-auto mb-4 text-gray-400" /> <Bot className="w-12 h-12 mx-auto mb-4 text-gray-400" />
<p className="mt-2">Hoş Geldiniz!</p> <p className="mt-2">Hoş Geldiniz!</p>
<p className="text-lg font-medium">Sozsoft AI</p> <p className="text-lg font-medium">Kurs AI</p>
</div> </div>
)} )}

View file

@ -62,6 +62,6 @@ export default defineConfig({
host: '0.0.0.0', host: '0.0.0.0',
port: 80, port: 80,
open: false, open: false,
allowedHosts: ['platform-dev.sozsoft.net', 'platform.sozsoft.net', 'localhost'], allowedHosts: ['platform-dev.sozsoft.com', 'platform.sozsoft.com', 'localhost'],
}, },
}) })