me-web? skeleton: Avalonia 12 app, server, packaging and CI
Build / Desktop, server and tools (push) Successful in 1m7s

The first screen (online or not, a Check button, every language with a
draft notice), the desktop and Android heads, the server's /api/info and
/api/ip, a release tool that builds deb, rpm, a Windows exe, macOS zips,
a signed APK and the server, and the Gitea workflows that run it. Rules
adapted from passolo; AGPL-3.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-15 01:14:44 +02:00
commit 7589121846
76 files changed
+3082

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
namespace MeWeb.Shared;
public static class Endpoints
{
public const string Host = "meweb.arasaka.software";
public const string HostV4 = "v4.meweb.arasaka.software";
public const string HostV6 = "v6.meweb.arasaka.software";
public static string Base => $"https://{Host}";
public static string BaseV4 => $"https://{HostV4}";
public static string BaseV6 => $"https://{HostV6}";
public const string Api = "/api";
public static class Server
{
public const string GET_Info = $"{Api}/info";
public const string GET_Ip = $"{Api}/ip";
}
public static class Downloads
{
public const string GET_Platform = "/download/{platform}";
public static string GET_M_Platform(string platform) => $"/download/{platform}";
}
}
+28
View File
@@ -0,0 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace>MeWeb.Shared</RootNamespace>
<BuildCommit Condition="'$(BuildCommit)' == ''">dev</BuildCommit>
<BuildTimeUtc Condition="'$(BuildTimeUtc)' == ''">2000-01-01T00:00:00Z</BuildTimeUtc>
</PropertyGroup>
<Target Name="GenerateBuildInfo" BeforeTargets="BeforeCompile">
<PropertyGroup>
<BuildInfoPath>$(IntermediateOutputPath)BuildInfo.g.cs</BuildInfoPath>
</PropertyGroup>
<ItemGroup>
<BuildInfoLine Include="namespace MeWeb.Shared%3B" />
<BuildInfoLine Include="public static class BuildInfo" />
<BuildInfoLine Include="{" />
<BuildInfoLine Include=" public const string Version = &quot;$(Version)&quot;%3B" />
<BuildInfoLine Include=" public const string Commit = &quot;$(BuildCommit)&quot;%3B" />
<BuildInfoLine Include=" public const string BuiltAt = &quot;$(BuildTimeUtc)&quot;%3B" />
<BuildInfoLine Include="}" />
</ItemGroup>
<WriteLinesToFile File="$(BuildInfoPath)" Lines="@(BuildInfoLine)" Overwrite="true" WriteOnlyWhenDifferent="true" />
<ItemGroup>
<Compile Include="$(BuildInfoPath)" />
<FileWrites Include="$(BuildInfoPath)" />
</ItemGroup>
</Target>
</Project>
+11
View File
@@ -0,0 +1,11 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace MeWeb.Shared;
[JsonSourceGenerationOptions(JsonSerializerDefaults.Web)]
[JsonSerializable(typeof(ViewInfo))]
[JsonSerializable(typeof(ViewIp))]
public partial class MeWebJsonContext : JsonSerializerContext
{
}
+14
View File
@@ -0,0 +1,14 @@
namespace MeWeb.Shared;
public class ViewInfo
{
public string Version { get; set; }
public string Commit { get; set; }
public string BuiltAt { get; set; }
}
public class ViewIp
{
public string Address { get; set; }
public string Family { get; set; }
}