mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-26 10:21:52 +00:00
131 lines
3.3 KiB
Haskell
131 lines
3.3 KiB
Haskell
{-# LANGUAGE QuasiQuotes #-}
|
|
module Lib.External.AppManifestSpec where
|
|
|
|
import Startlude
|
|
|
|
import Test.Hspec
|
|
|
|
import Data.String.Interpolate.IsString
|
|
import Data.Yaml
|
|
|
|
import Lib.External.AppManifest
|
|
|
|
cups023Manifest :: ByteString
|
|
cups023Manifest = [i|
|
|
---
|
|
compat: v0
|
|
id: cups
|
|
version: 0.2.3
|
|
title: Cups
|
|
description:
|
|
short: Peer-to-Peer Encrypted Messaging
|
|
long: A peer-to-peer encrypted messaging platform that operates over tor.
|
|
release-notes: fix autofill for password field
|
|
ports:
|
|
- internal: 59001
|
|
tor: 59001
|
|
- internal: 80
|
|
tor: 80
|
|
image:
|
|
type: tar
|
|
mount: /root
|
|
assets:
|
|
- src: httpd.conf
|
|
dst: "."
|
|
overwrite: true
|
|
- src: www
|
|
dst: "."
|
|
overwrite: true
|
|
hidden-service-version: v3
|
|
|]
|
|
|
|
cups023ManifestModNoUI :: ByteString
|
|
cups023ManifestModNoUI = [i|
|
|
---
|
|
compat: v0
|
|
id: cups
|
|
version: 0.2.3
|
|
title: Cups
|
|
description:
|
|
short: Peer-to-Peer Encrypted Messaging
|
|
long: A peer-to-peer encrypted messaging platform that operates over tor.
|
|
release-notes: fix autofill for password field
|
|
ports:
|
|
- internal: 59001
|
|
tor: 59001
|
|
image:
|
|
type: tar
|
|
mount: /root
|
|
assets:
|
|
- src: httpd.conf
|
|
dst: "."
|
|
overwrite: true
|
|
- src: www
|
|
dst: "."
|
|
overwrite: true
|
|
hidden-service-version: v3
|
|
|]
|
|
|
|
mastodon330Manifest :: ByteString
|
|
mastodon330Manifest = [i|
|
|
---
|
|
id: mastodon
|
|
version: 3.3.0.1
|
|
title: Mastodon
|
|
description:
|
|
short: "A free, open-source social network server."
|
|
long: "Mastodon is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub)!"
|
|
release-notes: Added an acation to reset the admin password
|
|
install-alert: "After starting mastodon for the first time, it can take a long time (several minutes) to be ready.\nPlease be patient. On future starts of the service, it will be faster, but still takes longer than other services.\nMake sure to sign up for a user before giving out your link. The first user to sign up is set as the admin user.\n"
|
|
uninstall-alert: ~
|
|
restore-alert: ~
|
|
start-alert: "It may take several minutes after startup for this service to be ready for use.\n"
|
|
has-instructions: true
|
|
os-version-required: ">=0.2.8"
|
|
os-version-recommended: ">=0.2.8"
|
|
ports:
|
|
- internal: 80
|
|
tor: 80
|
|
lan: standard
|
|
- internal: 443
|
|
tor: 443
|
|
lan:
|
|
custom:
|
|
port: 443
|
|
- internal: 3000
|
|
tor: 3000
|
|
lan: ~
|
|
- internal: 4000
|
|
tor: 4000
|
|
lan: ~
|
|
image:
|
|
type: tar
|
|
shm-size-mb: ~
|
|
mount: /root/persistence
|
|
public: ~
|
|
shared: ~
|
|
assets: []
|
|
hidden-service-version: v3
|
|
dependencies: {}
|
|
actions:
|
|
- id: reset-admin-password
|
|
name: Reset Admin Password
|
|
description: This action will reset your admin password to a random value
|
|
allowed-statuses:
|
|
- RUNNING
|
|
command:
|
|
- docker_entrypoint.sh
|
|
- reset_admin_password.sh
|
|
|]
|
|
|
|
|
|
spec :: Spec
|
|
spec = do
|
|
describe "parsing app manifest ports" $ do
|
|
it "should parse mastodon 3.3.0" $ do
|
|
res <- decodeThrow @IO @AppManifest mastodon330Manifest
|
|
print res
|
|
lanUiAvailable res `shouldBe` True
|
|
torUiAvailable res `shouldBe` True
|
|
|