No more fake services
This commit is contained in:
parent
30636b25e2
commit
6a20ce0912
146
public/services.json
Normal file
146
public/services.json
Normal file
@ -0,0 +1,146 @@
|
||||
[
|
||||
{
|
||||
"name": "Archivebox",
|
||||
"uri": "https://archivebox.starbase80.dev",
|
||||
"description": "Backup webpages",
|
||||
"icon": {
|
||||
"href": "/icons/archivebox.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Authelia",
|
||||
"uri": "https://auth.starbase80.dev",
|
||||
"description": "Authentication",
|
||||
"icon": {
|
||||
"href": "/icons/authelia.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Calibre",
|
||||
"uri": "https://calibre.starbase80.dev",
|
||||
"description": "eBook library",
|
||||
"icon": {
|
||||
"href": "/icons/calibre.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Gitea",
|
||||
"uri": "https://git.starbase80.dev",
|
||||
"description": "Code hosting",
|
||||
"icon": {
|
||||
"href": "/icons/gitea.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Jellyfin",
|
||||
"uri": "https://jellyfin.starbase80.dev",
|
||||
"description": "Media server",
|
||||
"icon": {
|
||||
"href": "/icons/jellyfin.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Mastodon",
|
||||
"uri": "https://notclickable.social",
|
||||
"description": "NotClickable.social",
|
||||
"icon": {
|
||||
"href": "/icons/mastodon.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Mealie",
|
||||
"uri": "https://mealie.starbase80.dev",
|
||||
"description": "Recipe manager",
|
||||
"icon": {
|
||||
"href": "/icons/mealie.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "N8N",
|
||||
"uri": "https://n8n.starbase80.dev",
|
||||
"description": "Workflow automation",
|
||||
"icon": {
|
||||
"href": "/icons/n8n.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MeTube",
|
||||
"uri": "https://metube.starbase80.dev",
|
||||
"description": "Archive YouTube",
|
||||
"icon": {
|
||||
"href": "/icons/metube.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Miniflux",
|
||||
"uri": "https://miniflux.starbase80.dev",
|
||||
"description": "RSS server",
|
||||
"icon": {
|
||||
"href": "/icons/miniflux.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Portainer",
|
||||
"uri": "https://portainer.starbase80.dev",
|
||||
"description": "Docker management",
|
||||
"icon": {
|
||||
"href": "/icons/portainer.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Roher Twins",
|
||||
"uri": "https://rohertwins.starbase80.dev",
|
||||
"description": "Weekly newsletter",
|
||||
"icon": {
|
||||
"href": "/icons/ghost.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Roher Wiki",
|
||||
"uri": "https://roherwiki.starbase80.dev",
|
||||
"description": "Family wiki",
|
||||
"icon": {
|
||||
"href": "/icons/wikijs.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Standard Notes",
|
||||
"uri": "https://standardnotes.starbase80.dev",
|
||||
"description": "Knowledge base",
|
||||
"icon": {
|
||||
"href": "/icons/standardnotes.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Vaultwarden",
|
||||
"uri": "https://vaultwarden.starbase80.dev",
|
||||
"description": "Password manager",
|
||||
"icon": {
|
||||
"href": "/icons/vaultwarden.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Visual Studio Code",
|
||||
"uri": "https://vscode.starbase80.dev",
|
||||
"description": "Code editor",
|
||||
"icon": {
|
||||
"href": "/icons/vscode.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Wallabag",
|
||||
"uri": "https://wallabag.starbase80.dev",
|
||||
"description": "Read later",
|
||||
"icon": {
|
||||
"href": "/icons/wallabag.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Woodpecker",
|
||||
"uri": "https://woodpecker.starbase80.dev",
|
||||
"description": "Continuous integration",
|
||||
"icon": {
|
||||
"href": "/icons/woodpecker.jpg"
|
||||
}
|
||||
}
|
||||
]
|
@ -1,7 +1,8 @@
|
||||
import React from "react";
|
||||
import userServices from "../../public/services.json";
|
||||
import { Header } from "../components/header";
|
||||
import { Services } from "../components/services";
|
||||
import { FAKE_SERVICES } from "../shared/types";
|
||||
import { IService } from "../shared/types";
|
||||
|
||||
interface IProps {
|
||||
title?: string;
|
||||
@ -9,13 +10,15 @@ interface IProps {
|
||||
}
|
||||
|
||||
export const IndexPage: React.FunctionComponent<IProps> = ({ icon, title }) => {
|
||||
const mySerices = userServices as IService[];
|
||||
|
||||
return (
|
||||
<div className="min-h-screen flex flex-row">
|
||||
<div className="min-h-screen border-0 border-solid border-r border-r-gray-300 p-4 max-w-xs">
|
||||
<Header title={title} icon={icon} />
|
||||
</div>
|
||||
<div className="min-h-screen p-4 flex-grow">
|
||||
<Services services={FAKE_SERVICES} />
|
||||
<Services services={mySerices} />
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
@ -11,150 +11,3 @@ export interface IIcon {
|
||||
title?: string;
|
||||
alt?: string;
|
||||
}
|
||||
|
||||
export const FAKE_SERVICES: IService[] = [
|
||||
{
|
||||
name: "Archivebox",
|
||||
uri: "https://archivebox.starbase80.dev",
|
||||
description: "Backup webpages",
|
||||
icon: {
|
||||
href: "/icons/archivebox.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Authelia",
|
||||
uri: "https://auth.starbase80.dev",
|
||||
description: "Authentication",
|
||||
icon: {
|
||||
href: "/icons/authelia.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Calibre",
|
||||
uri: "https://calibre.starbase80.dev",
|
||||
description: "eBook library",
|
||||
icon: {
|
||||
href: "/icons/calibre.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Gitea",
|
||||
uri: "https://git.starbase80.dev",
|
||||
description: "Code hosting",
|
||||
icon: {
|
||||
href: "/icons/gitea.svg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Jellyfin",
|
||||
uri: "https://jellyfin.starbase80.dev",
|
||||
description: "Media server",
|
||||
icon: {
|
||||
href: "/icons/jellyfin.svg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Mastodon",
|
||||
uri: "https://notclickable.social",
|
||||
description: "NotClickable.social",
|
||||
icon: {
|
||||
href: "/icons/mastodon.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Mealie",
|
||||
uri: "https://mealie.starbase80.dev",
|
||||
description: "Recipe manager",
|
||||
icon: {
|
||||
href: "/icons/mealie.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "N8N",
|
||||
uri: "https://n8n.starbase80.dev",
|
||||
description: "Workflow automation",
|
||||
icon: {
|
||||
href: "/icons/n8n.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "MeTube",
|
||||
uri: "https://metube.starbase80.dev",
|
||||
description: "Archive YouTube",
|
||||
icon: {
|
||||
href: "/icons/metube.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Miniflux",
|
||||
uri: "https://miniflux.starbase80.dev",
|
||||
description: "RSS server",
|
||||
icon: {
|
||||
href: "/icons/miniflux.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Portainer",
|
||||
uri: "https://portainer.starbase80.dev",
|
||||
description: "Docker management",
|
||||
icon: {
|
||||
href: "/icons/portainer.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Roher Twins",
|
||||
uri: "https://rohertwins.starbase80.dev",
|
||||
description: "Weekly newsletter",
|
||||
icon: {
|
||||
href: "/icons/ghost.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Roher Wiki",
|
||||
uri: "https://roherwiki.starbase80.dev",
|
||||
description: "Family wiki",
|
||||
icon: {
|
||||
href: "/icons/wikijs.svg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Standard Notes",
|
||||
uri: "https://standardnotes.starbase80.dev",
|
||||
description: "Knowledge base",
|
||||
icon: {
|
||||
href: "/icons/standardnotes.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Vaultwarden",
|
||||
uri: "https://vaultwarden.starbase80.dev",
|
||||
description: "Password manager",
|
||||
icon: {
|
||||
href: "/icons/vaultwarden.svg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Visual Studio Code",
|
||||
uri: "https://vscode.starbase80.dev",
|
||||
description: "Code editor",
|
||||
icon: {
|
||||
href: "/icons/vscode.jpg",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Wallabag",
|
||||
uri: "https://wallabag.starbase80.dev",
|
||||
description: "Read later",
|
||||
icon: {
|
||||
href: "/icons/wallabag.png",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "Woodpecker",
|
||||
uri: "https://woodpecker.starbase80.dev",
|
||||
description: "Continuous integration",
|
||||
icon: {
|
||||
href: "/icons/woodpecker.jpg",
|
||||
},
|
||||
},
|
||||
];
|
||||
|
@ -1,21 +1,21 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ESNext",
|
||||
"useDefineForClassFields": true,
|
||||
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
||||
"allowJs": false,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": false,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
"include": ["src"],
|
||||
"references": [{ "path": "./tsconfig.node.json" }]
|
||||
"compilerOptions": {
|
||||
"target": "ESNext",
|
||||
"useDefineForClassFields": true,
|
||||
"lib": ["DOM", "DOM.Iterable", "ESNext"],
|
||||
"allowJs": false,
|
||||
"skipLibCheck": true,
|
||||
"esModuleInterop": false,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "Node",
|
||||
"resolveJsonModule": true,
|
||||
"isolatedModules": true,
|
||||
"noEmit": true,
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
"include": ["src", "public"],
|
||||
"references": [{ "path": "./tsconfig.node.json" }]
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user