Skip to content

Commit c161b7d

Browse files
committed
feat: get immich
1 parent 0831063 commit c161b7d

File tree

16 files changed

+634
-9
lines changed

16 files changed

+634
-9
lines changed

.github/workflows/build.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
runs-on: ubuntu-latest
2323
strategy:
2424
matrix:
25-
app_name: ['my', 'buy']
25+
app_name: ['my', 'buy', 'get']
2626

2727
steps:
2828
- name: Checkout code
@@ -63,7 +63,7 @@ jobs:
6363
strategy:
6464
fail-fast: false
6565
matrix:
66-
app_name: ['my', 'buy']
66+
app_name: ['my', 'buy', 'get']
6767
env:
6868
TF_VAR_app_name: ${{ matrix.app_name }}
6969
TF_VAR_stage: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || '' }}

.github/workflows/destroy.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
max-parallel: 1
1616
matrix:
1717
environment: ['dev', 'prod']
18-
name: ['my', 'buy']
18+
name: ['my', 'buy', 'get']
1919
steps:
2020
- name: Checkout code
2121
uses: actions/checkout@v4

.github/workflows/test.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
runs-on: ubuntu-latest
1616
strategy:
1717
matrix:
18-
app: [my.immich.app, buy.immich.app]
18+
app_name: [my, buy, get]
1919

2020
steps:
2121
- name: Checkout code
@@ -29,7 +29,7 @@ jobs:
2929
- name: Set app
3030
run: |
3131
touch .env
32-
echo IMMICH_APP="${{ matrix.app }}" >> .env
32+
echo IMMICH_APP="${{ matrix.app_name }}.immich.app" >> .env
3333
3434
- name: Run npm install
3535
run: npm ci

apps/buy.immich.app/+page.svelte

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
const userFeatures = ['For an individual', 'Lifetime purchase', 'Supporter status'];
1010
</script>
1111

12-
<FullPageLayout>
12+
<FullPageLayout width="md">
1313
<Stack gap={4}>
1414
<SupporterBadge effect="always">
1515
<Logo size="large" variant="icon" />

apps/get.immich.app/+layout.svelte

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<script lang="ts">
2+
import '$lib/app.css';
3+
4+
let { children } = $props();
5+
</script>
6+
7+
{@render children()}

apps/get.immich.app/+page.svelte

+145
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
<script lang="ts">
2+
import portainerIcon from '$lib/assets/img/portainer.svg';
3+
import truenasIcon from '$lib/assets/img/truenas-scale.svg';
4+
import unraidIcon from '$lib/assets/img/unraid.svg';
5+
import FullPageLayout from '$lib/components/FullPageLayout.svelte';
6+
import {
7+
Button,
8+
Card,
9+
CardBody,
10+
CardDescription,
11+
CardFooter,
12+
CardHeader,
13+
CardTitle,
14+
Heading,
15+
Icon,
16+
Link,
17+
Logo,
18+
Stack,
19+
SupporterBadge,
20+
Text,
21+
appStoreBadge,
22+
fdroidBadge,
23+
playStoreBadge,
24+
} from '@immich/ui';
25+
import { mdiAndroid, mdiDocker } from '@mdi/js';
26+
</script>
27+
28+
<FullPageLayout width="lg">
29+
<Stack gap={8}>
30+
<SupporterBadge effect="always">
31+
<Logo size="large" variant="icon" />
32+
<Heading size="large" color="primary">Get Immich</Heading>
33+
</SupporterBadge>
34+
35+
<Stack gap={2}>
36+
<div>
37+
<Heading size="large">Mobile Apps</Heading>
38+
<Text color="muted"
39+
>Download Immich app and start backing up your photos and videos securely to your own server</Text
40+
>
41+
</div>
42+
43+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-2 l gap-4">
44+
<Card color="secondary" variant="subtle">
45+
<CardHeader>
46+
<CardTitle>Android</CardTitle>
47+
</CardHeader>
48+
<CardBody>
49+
<Stack gap={4}>
50+
<a href="https://get.immich.app/android">
51+
<img class="h-24 mx-auto" alt="Get it on Google Play" src={playStoreBadge} />
52+
</a>
53+
<a href="https://get.immich.app/fdroid">
54+
<img class="h-16 mx-auto rounded-xl border border-dark" alt="Get it on F-Droid" src={fdroidBadge} />
55+
</a>
56+
<Button
57+
class="h-16 mx-auto mt-4 dark:bg-black dark:text-white"
58+
size="giant"
59+
href="https://github.com/immich-app/immich/releases/latest"
60+
color="secondary"
61+
>
62+
<Icon icon={mdiAndroid} size="2em" />
63+
<Text>Download APK</Text>
64+
</Button>
65+
</Stack>
66+
</CardBody>
67+
</Card>
68+
69+
<Card color="secondary" variant="subtle">
70+
<CardHeader>
71+
<CardTitle>iOS</CardTitle>
72+
</CardHeader>
73+
<CardBody>
74+
<a href="https://get.immich.app/ios">
75+
<img class="h-16 mt-4 mx-auto" alt="Download on the App Store" src={appStoreBadge} />
76+
</a>
77+
</CardBody>
78+
</Card>
79+
</div>
80+
</Stack>
81+
82+
<Stack gap={2}>
83+
<div>
84+
<Heading size="large">Server</Heading>
85+
<Text color="muted">Download, setup, and run Immich on your own server</Text>
86+
</div>
87+
88+
<section class="grid auto-rows-fr grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
89+
<Card color="secondary" variant="subtle" class="h-full">
90+
<CardHeader>
91+
<CardTitle>Docker Compose</CardTitle>
92+
<CardDescription>Run Immich on <Link href="https://www.docker.com/">Docker</Link></CardDescription>
93+
</CardHeader>
94+
<CardBody class="flex align-middle items-center justify-center ">
95+
<Icon icon={mdiDocker} size="6rem" color="#0db7ed" />
96+
</CardBody>
97+
<CardFooter class="flex flex-col gap-2">
98+
<Button fullWidth href="https://immich.app/docs/install/docker-compose">View Instructions</Button>
99+
</CardFooter>
100+
</Card>
101+
102+
<Card color="secondary" variant="subtle" class="h-full">
103+
<CardHeader>
104+
<CardTitle>Portainer</CardTitle>
105+
<CardDescription>Run Immich on <Link href="https://www.portainer.io/">Portainer</Link></CardDescription>
106+
</CardHeader>
107+
<CardBody class="flex align-middle items-center justify-center ">
108+
<img src={portainerIcon} class="w-20" alt="Portainer logo" />
109+
</CardBody>
110+
<CardFooter>
111+
<Button fullWidth href="https://immich.app/docs/install/portainer">View Instructions</Button>
112+
</CardFooter>
113+
</Card>
114+
115+
<Card color="secondary" variant="subtle" class="h-full">
116+
<CardHeader>
117+
<CardTitle>Unraid</CardTitle>
118+
<CardDescription>Run Immich on <Link href="https://unraid.net/">Unraid</Link></CardDescription>
119+
</CardHeader>
120+
<CardBody class="flex align-middle items-center justify-center ">
121+
<img src={unraidIcon} class="w-24" alt="UnRaid logo" />
122+
</CardBody>
123+
<CardFooter>
124+
<Button fullWidth href="https://immich.app/docs/install/unraid">View Instructions</Button>
125+
</CardFooter>
126+
</Card>
127+
128+
<Card color="secondary" variant="subtle" class="h-full">
129+
<CardHeader>
130+
<CardTitle>TrueNAS SCALE</CardTitle>
131+
<CardDescription
132+
>Run Immich on <Link href="https://www.truenas.com/truenas-scale/">TrueNAS SCALE</Link></CardDescription
133+
>
134+
</CardHeader>
135+
<CardBody class="flex align-middle items-center justify-center ">
136+
<img src={truenasIcon} class="w-24" alt="TrueNAS SCALE logo" />
137+
</CardBody>
138+
<CardFooter>
139+
<Button fullWidth href="https://immich.app/docs/install/truenas">View Instructions</Button>
140+
</CardFooter>
141+
</Card>
142+
</section>
143+
</Stack>
144+
</Stack>
145+
</FullPageLayout>

apps/get.immich.app/app.html

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<link rel="icon" href="%sveltekit.assets%/favicon.ico" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1" />
7+
<title>Immich - My Immich App</title>
8+
<meta name="theme-color" content="currentColor" />
9+
<meta name="description" content="Get Immich" />
10+
11+
<!-- Facebook Meta Tags -->
12+
<meta property="og:type" content="website" />
13+
<meta property="og:title" content="Get Immich" />
14+
<meta property="og:description" content="Get Immich" />
15+
<meta property="og:image" content="/img/social-preview.png" />
16+
17+
<!-- Twitter Meta Tags -->
18+
<meta name="twitter:card" content="summary_large_image" />
19+
<meta name="twitter:title" content="Buy Immich" />
20+
<meta name="twitter:description" content="Get Immich" />
21+
<meta name="twitter:image" content="/img/social-preview.png" />
22+
%sveltekit.head%
23+
</head>
24+
<body data-sveltekit-preload-data="hover" class="dark bg-light text-dark">
25+
<div style="display: contents">%sveltekit.body%</div>
26+
</body>
27+
</html>

0 commit comments

Comments
 (0)