{
  "site": {
    "titolo": "Cyberspace",
    "sigla": "CYBERSPACE",
    "sottotitolo": "indice dei siti",
    "descrizione": "Registro ragionato dei siti: host, ruolo, impianto tecnico, stato. Una riga per nodo, nessuna decorazione.",
    "base_url": "https://siti.cyber-space.it",
    "lingua": "it",
    "autore": "shimoda",
    "stati": [
      "vivo",
      "staging",
      "parcheggiato",
      "redirect",
      "senza vhost"
    ],
    "colonne": [
      "host",
      "ruolo",
      "stack",
      "tag",
      "stato"
    ]
  },
  "siti": [
    {
      "id": "cybernet-fun",
      "host": "cybernet.fun",
      "url": "https://cybernet.fun/",
      "titolo": "Cybernet",
      "ruolo": "Splash di #cybernet, progetti scaricabili, statistiche",
      "stack": "HTML generato (build.py) · PHP 8.3 + SQLite per _m/",
      "tags": [
        "statico",
        "php",
        "sqlite",
        "progetti"
      ],
      "stato": "vivo",
      "anno": 2024,
      "nota": "Splash con .htaccess 410 sulle directory non pubbliche; le statistiche vivono in /_m/ fuori dal flusso statico."
    },
    {
      "id": "pseudocodice-it",
      "host": "pseudocodice.it",
      "url": "https://pseudocodice.it/",
      "titolo": "Pseudocodice",
      "ruolo": "Blog e portfolio, più le app minori",
      "stack": "WordPress 7.1.4 · tema csma · PHP 8.3 · MySQL",
      "tags": [
        "wordpress",
        "blog",
        "php",
        "mysql"
      ],
      "stato": "vivo",
      "anno": 2016,
      "nota": "Le app (lezioni, socializer, space_shooter) stanno sotto lo stesso docroot con Alias dedicati."
    },
    {
      "id": "incontri-reali-it",
      "host": "www.incontri-reali.it",
      "url": "https://www.incontri-reali.it/",
      "titolo": "Incontri Reali",
      "ruolo": "Annunci, profili, admin, 2FA, statistiche",
      "stack": "PHP 8.3 · MySQL · front controller public/index.php",
      "tags": [
        "php",
        "mysql",
        "app",
        "custom"
      ],
      "stato": "vivo",
      "anno": 2023,
      "nota": "Staging separato su staging.incontri-reali.it con DB incontri_staging e mail disattivate."
    },
    {
      "id": "conoscersi",
      "host": "conoscersi.incontri-reali.it",
      "url": "https://conoscersi.incontri-reali.it/",
      "titolo": "Conoscersi",
      "ruolo": "Profili, dodici domande, affinità, chat privata",
      "stack": "PHP 8.3 · SQLite · zero dipendenze, CSS e JS a mano",
      "tags": [
        "php",
        "sqlite",
        "app",
        "custom"
      ],
      "stato": "vivo",
      "anno": 2025,
      "nota": "Tutto il codice è leggibile in sessione: niente framework, niente build step."
    },
    {
      "id": "video-cybernet-fun",
      "host": "video.cybernet.fun",
      "url": "https://video.cybernet.fun/",
      "titolo": "NEONCAM",
      "ruolo": "Videochat WebRTC a stanze",
      "stack": "Node 22 · unit wc.service su 127.0.0.1:3010 · vhost in proxy",
      "tags": [
        "webrtc",
        "node",
        "realtime"
      ],
      "stato": "vivo",
      "anno": 2025,
      "nota": "Spostato su sottodominio proprio: i vecchi percorsi rispondono 301."
    },
    {
      "id": "desideri-shop",
      "host": "desideri.shop",
      "url": "https://desideri.shop/",
      "titolo": "Desideri",
      "ruolo": "Wishlist pubblica con finanziamento PayPal",
      "stack": "PHP 8.3 · MySQL · front controller public/index.php",
      "tags": [
        "php",
        "mysql",
        "app",
        "ecommerce"
      ],
      "stato": "vivo",
      "anno": 2025
    }
  ]
}
