<script lang="ts">
  import ServiceCard from "./ServiceCard.svelte";
  import SectionTitle from "./SectionTitle.svelte";

  const services: App.ServiceItem[] = [
    {
      icon: "iconify-[fa7-brands--git-alt]",
      name: "git",
      description:
        "cgit instance, all project repositories are accessible and available under free licenses",
      source: "https://git.toufy.me/servers/tree/aphrodite/devops/git.nix",
      url: "https://git.toufy.me",
      references: [
        { name: "git", url: "https://git-scm.com" },
        { name: "cgit", url: "https://git.zx2c4.com/cgit/about" },
        { name: "gitolite", url: "https://gitolite.com/gitolite" },
      ],
    },
    {
      icon: "iconify-[fa7-solid--search]",
      name: "search",
      description:
        "my public searxng instance. no usage metrics. opinionated selection of engines; no LLMs, captchas, or censorship/far-right engines",
      source: "https://git.toufy.me/servers/tree/aphrodite/search",
      url: "https://search.toufy.me",
      references: [{ name: "searxng", url: "https://searxng.org" }],
    },
    {
      icon: "iconify-[fa7-brands--tor-browser]",
      name: "tor",
      description:
        "a tor relay node and an embedded snowflake. open this page and keep the tab running in the background to spin up your own snowflake instance",
      source: "https://git.toufy.me/servers/tree/adonis/tor",
      url: "https://tor.toufy.me",
      references: [
        { name: "tor project", url: "https://torproject.org" },
        { name: "snowflake", url: "https://snowflake.torproject.org" },
      ],
    },
    {
      icon: "iconify-[fa7-brands--arch-linux]",
      name: "aur",
      description:
        "weekly builds of AUR packages (mostly for development) that i use, but if someone requests a package i might add it",
      source: "https://git.toufy.me/taur",
      url: "https://aur.toufy.me",
      references: [{ name: "aur", url: "https://aur.archlinux.org" }],
    },
    {
      icon: "iconify-[fa7-solid--wifi]",
      name: "captive portal",
      description:
        "a telemetry-free captive portal check as an alternative to android's default 'connectivitycheck.gstatic.com' by google",
      source:
        "https://git.toufy.me/servers/tree/adonis/captiveportal/default.nix",
      url: "https://cpc.toufy.me",
      references: [
        {
          name: "captive portal detection",
          url: "https://developer.android.com/about/versions/11/features/captive-portal#detection",
        },
      ],
    },
    {
      icon: "iconify-[fa7-solid--bell]",
      name: "push notifications",
      description:
        "autopush server, you can use this with Sunup for push notifications using UnifiedPush",
      source:
        "https://git.toufy.me/servers/tree/adonis/captiveportal/default.nix",
      url: "https://push.toufy.me",
      references: [
        {
          name: "autopush",
          url: "https://github.com/mozilla-services/autopush-rs",
        },
        {
          name: "UnifiedPush",
          url: "https://unifiedpush.org",
        },
        {
          name: "Sunup",
          url: "https://codeberg.org/Sunup/android",
        },
      ],
    },
  ];
</script>

<SectionTitle title="public service">
  a list of my public services;<br />
  everything you can access/use is free (as in free speech and free beer)
</SectionTitle>
<div class="flex place-content-center place-items-center w-full">
  <div class="grid grid-cols-1 md:grid-cols-3 w-fit">
    {#each services as service}
      <ServiceCard {service} />
    {/each}
  </div>
</div>
