From ca2bcafe160ec37f6b5ddd6c21042142ee45d572 Mon Sep 17 00:00:00 2001 From: Sil Klaasboer Date: Mon, 17 Feb 2025 19:23:54 +0100 Subject: [PATCH] Initial upload of configurations --- README.md | 7 +- authelia/authelia.env | 3 + authelia/config/configuration.yml | 0 authelia/config/users_database.yml | 14 + authelia/docker-compose.yaml | 17 + authelia/secrets/jwtsecret | 0 authelia/secrets/oicd.pem | 0 authelia/secrets/oidcsecret | 0 authelia/secrets/session | 0 authelia/secrets/smtp | 0 authelia/secrets/storage | 0 global.env | 4 + homeassistant/docker-compose.yaml | 21 + homeassistant/homeassistant.env | 3 + llink/Dockerfile | 2 + llink/LICENSE.md | 8 + llink/README.md | 41 + llink/css/brands.css | 1079 +++++++++++++++++ llink/css/normalize.css | 427 +++++++ llink/css/skeleton-auto.css | 279 +++++ llink/css/skeleton-dark.css | 261 ++++ llink/css/skeleton-light.css | 261 ++++ llink/docker-compose.yml | 7 + ...ek-ext_greek_cyrillic-ext_cyrillic-600.eot | Bin 0 -> 63772 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-600.svg | 366 ++++++ ...ek-ext_greek_cyrillic-ext_cyrillic-600.ttf | Bin 0 -> 122036 bytes ...k-ext_greek_cyrillic-ext_cyrillic-600.woff | Bin 0 -> 70724 bytes ...-ext_greek_cyrillic-ext_cyrillic-600.woff2 | Bin 0 -> 56336 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-700.eot | Bin 0 -> 61606 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-700.svg | 365 ++++++ ...ek-ext_greek_cyrillic-ext_cyrillic-700.ttf | Bin 0 -> 122092 bytes ...k-ext_greek_cyrillic-ext_cyrillic-700.woff | Bin 0 -> 68728 bytes ...-ext_greek_cyrillic-ext_cyrillic-700.woff2 | Bin 0 -> 54576 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-800.eot | Bin 0 -> 62144 bytes ...ek-ext_greek_cyrillic-ext_cyrillic-800.svg | 363 ++++++ ...ek-ext_greek_cyrillic-ext_cyrillic-800.ttf | Bin 0 -> 122492 bytes ...k-ext_greek_cyrillic-ext_cyrillic-800.woff | Bin 0 -> 69472 bytes ...-ext_greek_cyrillic-ext_cyrillic-800.woff2 | Bin 0 -> 54804 bytes ...xt_greek_cyrillic-ext_cyrillic-regular.eot | Bin 0 -> 63814 bytes ...xt_greek_cyrillic-ext_cyrillic-regular.svg | 365 ++++++ ...xt_greek_cyrillic-ext_cyrillic-regular.ttf | Bin 0 -> 122108 bytes ...t_greek_cyrillic-ext_cyrillic-regular.woff | Bin 0 -> 70856 bytes ..._greek_cyrillic-ext_cyrillic-regular.woff2 | Bin 0 -> 56348 bytes llink/images/icons/amazon-music.svg | 1 + llink/images/icons/amazon.svg | 1 + llink/images/icons/apple-music-alt.svg | 1 + llink/images/icons/apple-music.svg | 1 + llink/images/icons/apple-podcasts-alt.svg | 1 + llink/images/icons/apple-podcasts.svg | 1 + llink/images/icons/apple.svg | 1 + llink/images/icons/artstation.svg | 1 + llink/images/icons/bandcamp.svg | 1 + llink/images/icons/behance.svg | 1 + llink/images/icons/blog.svg | 1 + llink/images/icons/bluesky-alt.svg | 1 + llink/images/icons/bluesky.svg | 1 + llink/images/icons/buy-me-a-coffee.svg | 1 + llink/images/icons/cal.svg | 1 + llink/images/icons/calendly.svg | 1 + llink/images/icons/cash-app-btc.svg | 1 + llink/images/icons/cash-app-dollar.svg | 1 + llink/images/icons/cash-app-pound.svg | 1 + llink/images/icons/dev-to.svg | 1 + llink/images/icons/discogs-alt.svg | 1 + llink/images/icons/discogs.svg | 1 + llink/images/icons/discord.svg | 1 + llink/images/icons/dribbble.svg | 1 + llink/images/icons/email-alt.svg | 1 + llink/images/icons/email.svg | 1 + llink/images/icons/etsy.svg | 1 + llink/images/icons/facebook.svg | 1 + llink/images/icons/figma.svg | 1 + llink/images/icons/fiverr.svg | 3 + llink/images/icons/flickr.svg | 1 + llink/images/icons/generic-blog.svg | 1 + llink/images/icons/generic-calendar.svg | 1 + llink/images/icons/generic-cloud.svg | 1 + llink/images/icons/generic-code.svg | 1 + llink/images/icons/generic-computer.svg | 1 + llink/images/icons/generic-email-alt.svg | 1 + llink/images/icons/generic-email.svg | 1 + llink/images/icons/generic-homepage.svg | 1 + llink/images/icons/generic-map.svg | 1 + llink/images/icons/generic-phone.svg | 1 + llink/images/icons/generic-review.svg | 1 + llink/images/icons/generic-rss.svg | 1 + llink/images/icons/generic-shopping-bag.svg | 1 + llink/images/icons/generic-shopping-tag.svg | 1 + llink/images/icons/generic-sms.svg | 1 + llink/images/icons/generic-website.svg | 1 + llink/images/icons/github.svg | 1 + llink/images/icons/gitlab.svg | 1 + llink/images/icons/gofundme.svg | 1 + llink/images/icons/goodreads.svg | 1 + llink/images/icons/google-drive.svg | 1 + llink/images/icons/google-play.svg | 1 + llink/images/icons/google-podcasts.svg | 1 + llink/images/icons/google-scholar.svg | 1 + llink/images/icons/hashnode.svg | 1 + llink/images/icons/instagram.svg | 1 + llink/images/icons/kick-alt.svg | 1 + llink/images/icons/kick.svg | 1 + llink/images/icons/kickstarter.svg | 1 + llink/images/icons/kit.svg | 1 + llink/images/icons/ko-fi.svg | 1 + llink/images/icons/last-fm.svg | 1 + llink/images/icons/letterboxd.svg | 1 + llink/images/icons/line.svg | 1 + llink/images/icons/linkedin.svg | 1 + llink/images/icons/littlelink.svg | 1 + llink/images/icons/mailchimp.svg | 1 + llink/images/icons/mastodon.svg | 1 + llink/images/icons/medium.svg | 1 + llink/images/icons/messenger.svg | 1 + llink/images/icons/microsoft.svg | 1 + llink/images/icons/ngl.svg | 1 + llink/images/icons/notion.svg | 1 + llink/images/icons/onlyfans.svg | 1 + llink/images/icons/patreon.svg | 1 + llink/images/icons/paypal.svg | 1 + llink/images/icons/pinterest.svg | 1 + llink/images/icons/product-hunt.svg | 1 + llink/images/icons/read-cv.svg | 1 + llink/images/icons/redbubble.svg | 1 + llink/images/icons/reddit.svg | 1 + llink/images/icons/revolut.svg | 1 + llink/images/icons/shop.svg | 1 + llink/images/icons/signal.svg | 1 + llink/images/icons/slack.svg | 1 + llink/images/icons/snapchat.svg | 1 + llink/images/icons/soundcloud.svg | 1 + llink/images/icons/spotify-alt.svg | 1 + llink/images/icons/spotify.svg | 1 + llink/images/icons/square.svg | 1 + llink/images/icons/stack-overflow.svg | 1 + llink/images/icons/steam.svg | 1 + llink/images/icons/strava.svg | 1 + llink/images/icons/substack.svg | 3 + llink/images/icons/telegram.svg | 1 + llink/images/icons/threads.svg | 1 + llink/images/icons/threema.svg | 1 + llink/images/icons/tiktok.svg | 1 + llink/images/icons/trakt.svg | 1 + llink/images/icons/trello.svg | 1 + llink/images/icons/tumblr.svg | 1 + llink/images/icons/twitch.svg | 1 + llink/images/icons/unsplash.svg | 1 + llink/images/icons/untappd.svg | 1 + llink/images/icons/upwork.svg | 1 + llink/images/icons/venmo.svg | 1 + llink/images/icons/vimeo.svg | 1 + llink/images/icons/vrchat.svg | 1 + llink/images/icons/vsco.svg | 1 + llink/images/icons/whatsapp.svg | 1 + llink/images/icons/wordpress.svg | 1 + llink/images/icons/x.svg | 1 + llink/images/icons/youtube-music.svg | 1 + llink/images/icons/youtube.svg | 1 + llink/images/icons/zoom.svg | 1 + llink/images/littlelink.png | Bin 0 -> 2710 bytes llink/images/profile1.jpg | Bin 0 -> 359906 bytes llink/index.html | 101 ++ llink/privacy.html | 164 +++ llink/update_docker.sh | 92 ++ mqtt/docker-compose.yaml | 21 + mqtt/mqtt.env | 3 + nginx/docker-compose.yaml | 28 + nginx/nginx.env | 4 + nginxwebsite/docker-compose.yaml | 19 + nginxwebsite/website.env | 2 + obsidian/docker-compose.yaml | 21 + obsidian/obsidian.env | 3 + pihole/docker-compose.yml | 20 + pihole/pihole.env | 3 + plantuml/docker-compose.yaml | 14 + plantuml/plantuml.env | 2 + uptimekuma/docker-compose.yaml | 19 + uptimekuma/uptimekuma.env | 3 + vaultwarden/docker-compose.yaml | 22 + vaultwarden/vaultwarden.env | 12 + wireguard/docker-compose.yaml | 35 + wireguard/wireguard.env | 12 + wpwebsite/docker-compose.yml | 40 + wpwebsite/wordpress.env | 9 + 184 files changed, 4660 insertions(+), 2 deletions(-) create mode 100644 authelia/authelia.env create mode 100644 authelia/config/configuration.yml create mode 100644 authelia/config/users_database.yml create mode 100644 authelia/docker-compose.yaml create mode 100644 authelia/secrets/jwtsecret create mode 100644 authelia/secrets/oicd.pem create mode 100644 authelia/secrets/oidcsecret create mode 100644 authelia/secrets/session create mode 100644 authelia/secrets/smtp create mode 100644 authelia/secrets/storage create mode 100644 global.env create mode 100644 homeassistant/docker-compose.yaml create mode 100644 homeassistant/homeassistant.env create mode 100644 llink/Dockerfile create mode 100644 llink/LICENSE.md create mode 100644 llink/README.md create mode 100644 llink/css/brands.css create mode 100644 llink/css/normalize.css create mode 100644 llink/css/skeleton-auto.css create mode 100644 llink/css/skeleton-dark.css create mode 100644 llink/css/skeleton-light.css create mode 100644 llink/docker-compose.yml create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2 create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2 create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2 create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff create mode 100644 llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2 create mode 100644 llink/images/icons/amazon-music.svg create mode 100644 llink/images/icons/amazon.svg create mode 100644 llink/images/icons/apple-music-alt.svg create mode 100644 llink/images/icons/apple-music.svg create mode 100644 llink/images/icons/apple-podcasts-alt.svg create mode 100644 llink/images/icons/apple-podcasts.svg create mode 100644 llink/images/icons/apple.svg create mode 100644 llink/images/icons/artstation.svg create mode 100644 llink/images/icons/bandcamp.svg create mode 100644 llink/images/icons/behance.svg create mode 100644 llink/images/icons/blog.svg create mode 100644 llink/images/icons/bluesky-alt.svg create mode 100644 llink/images/icons/bluesky.svg create mode 100644 llink/images/icons/buy-me-a-coffee.svg create mode 100644 llink/images/icons/cal.svg create mode 100644 llink/images/icons/calendly.svg create mode 100644 llink/images/icons/cash-app-btc.svg create mode 100644 llink/images/icons/cash-app-dollar.svg create mode 100644 llink/images/icons/cash-app-pound.svg create mode 100644 llink/images/icons/dev-to.svg create mode 100644 llink/images/icons/discogs-alt.svg create mode 100644 llink/images/icons/discogs.svg create mode 100644 llink/images/icons/discord.svg create mode 100644 llink/images/icons/dribbble.svg create mode 100644 llink/images/icons/email-alt.svg create mode 100644 llink/images/icons/email.svg create mode 100644 llink/images/icons/etsy.svg create mode 100644 llink/images/icons/facebook.svg create mode 100644 llink/images/icons/figma.svg create mode 100644 llink/images/icons/fiverr.svg create mode 100644 llink/images/icons/flickr.svg create mode 100644 llink/images/icons/generic-blog.svg create mode 100644 llink/images/icons/generic-calendar.svg create mode 100644 llink/images/icons/generic-cloud.svg create mode 100644 llink/images/icons/generic-code.svg create mode 100644 llink/images/icons/generic-computer.svg create mode 100644 llink/images/icons/generic-email-alt.svg create mode 100644 llink/images/icons/generic-email.svg create mode 100644 llink/images/icons/generic-homepage.svg create mode 100644 llink/images/icons/generic-map.svg create mode 100644 llink/images/icons/generic-phone.svg create mode 100644 llink/images/icons/generic-review.svg create mode 100644 llink/images/icons/generic-rss.svg create mode 100644 llink/images/icons/generic-shopping-bag.svg create mode 100644 llink/images/icons/generic-shopping-tag.svg create mode 100644 llink/images/icons/generic-sms.svg create mode 100644 llink/images/icons/generic-website.svg create mode 100644 llink/images/icons/github.svg create mode 100644 llink/images/icons/gitlab.svg create mode 100644 llink/images/icons/gofundme.svg create mode 100644 llink/images/icons/goodreads.svg create mode 100644 llink/images/icons/google-drive.svg create mode 100644 llink/images/icons/google-play.svg create mode 100644 llink/images/icons/google-podcasts.svg create mode 100644 llink/images/icons/google-scholar.svg create mode 100644 llink/images/icons/hashnode.svg create mode 100644 llink/images/icons/instagram.svg create mode 100644 llink/images/icons/kick-alt.svg create mode 100644 llink/images/icons/kick.svg create mode 100644 llink/images/icons/kickstarter.svg create mode 100644 llink/images/icons/kit.svg create mode 100644 llink/images/icons/ko-fi.svg create mode 100644 llink/images/icons/last-fm.svg create mode 100644 llink/images/icons/letterboxd.svg create mode 100644 llink/images/icons/line.svg create mode 100644 llink/images/icons/linkedin.svg create mode 100644 llink/images/icons/littlelink.svg create mode 100644 llink/images/icons/mailchimp.svg create mode 100644 llink/images/icons/mastodon.svg create mode 100644 llink/images/icons/medium.svg create mode 100644 llink/images/icons/messenger.svg create mode 100644 llink/images/icons/microsoft.svg create mode 100644 llink/images/icons/ngl.svg create mode 100644 llink/images/icons/notion.svg create mode 100644 llink/images/icons/onlyfans.svg create mode 100644 llink/images/icons/patreon.svg create mode 100644 llink/images/icons/paypal.svg create mode 100644 llink/images/icons/pinterest.svg create mode 100644 llink/images/icons/product-hunt.svg create mode 100644 llink/images/icons/read-cv.svg create mode 100644 llink/images/icons/redbubble.svg create mode 100644 llink/images/icons/reddit.svg create mode 100644 llink/images/icons/revolut.svg create mode 100644 llink/images/icons/shop.svg create mode 100644 llink/images/icons/signal.svg create mode 100644 llink/images/icons/slack.svg create mode 100644 llink/images/icons/snapchat.svg create mode 100644 llink/images/icons/soundcloud.svg create mode 100644 llink/images/icons/spotify-alt.svg create mode 100644 llink/images/icons/spotify.svg create mode 100644 llink/images/icons/square.svg create mode 100644 llink/images/icons/stack-overflow.svg create mode 100644 llink/images/icons/steam.svg create mode 100644 llink/images/icons/strava.svg create mode 100644 llink/images/icons/substack.svg create mode 100644 llink/images/icons/telegram.svg create mode 100644 llink/images/icons/threads.svg create mode 100644 llink/images/icons/threema.svg create mode 100644 llink/images/icons/tiktok.svg create mode 100644 llink/images/icons/trakt.svg create mode 100644 llink/images/icons/trello.svg create mode 100644 llink/images/icons/tumblr.svg create mode 100644 llink/images/icons/twitch.svg create mode 100755 llink/images/icons/unsplash.svg create mode 100644 llink/images/icons/untappd.svg create mode 100644 llink/images/icons/upwork.svg create mode 100644 llink/images/icons/venmo.svg create mode 100644 llink/images/icons/vimeo.svg create mode 100644 llink/images/icons/vrchat.svg create mode 100644 llink/images/icons/vsco.svg create mode 100644 llink/images/icons/whatsapp.svg create mode 100644 llink/images/icons/wordpress.svg create mode 100644 llink/images/icons/x.svg create mode 100644 llink/images/icons/youtube-music.svg create mode 100644 llink/images/icons/youtube.svg create mode 100644 llink/images/icons/zoom.svg create mode 100644 llink/images/littlelink.png create mode 100644 llink/images/profile1.jpg create mode 100644 llink/index.html create mode 100644 llink/privacy.html create mode 100755 llink/update_docker.sh create mode 100644 mqtt/docker-compose.yaml create mode 100644 mqtt/mqtt.env create mode 100644 nginx/docker-compose.yaml create mode 100644 nginx/nginx.env create mode 100644 nginxwebsite/docker-compose.yaml create mode 100644 nginxwebsite/website.env create mode 100644 obsidian/docker-compose.yaml create mode 100644 obsidian/obsidian.env create mode 100644 pihole/docker-compose.yml create mode 100644 pihole/pihole.env create mode 100644 plantuml/docker-compose.yaml create mode 100644 plantuml/plantuml.env create mode 100644 uptimekuma/docker-compose.yaml create mode 100644 uptimekuma/uptimekuma.env create mode 100644 vaultwarden/docker-compose.yaml create mode 100644 vaultwarden/vaultwarden.env create mode 100644 wireguard/docker-compose.yaml create mode 100644 wireguard/wireguard.env create mode 100644 wpwebsite/docker-compose.yml create mode 100644 wpwebsite/wordpress.env diff --git a/README.md b/README.md index 0cacd99..b3dda57 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ -# docker-compose-configs +# config +Configurations for docker services and linux environments -Public docker compose config repository, to keep track of configuration changes and application setups \ No newline at end of file +# pull +to place the folder structure in the correct location clone the repository in the home folder of the user +```git clone ~/``` diff --git a/authelia/authelia.env b/authelia/authelia.env new file mode 100644 index 0000000..b9217fa --- /dev/null +++ b/authelia/authelia.env @@ -0,0 +1,3 @@ +CONTAINER_NAME=authelia +PORT_HTTPS=9091 +DNS_OVERRIDE=1.1.1.1 diff --git a/authelia/config/configuration.yml b/authelia/config/configuration.yml new file mode 100644 index 0000000..e69de29 diff --git a/authelia/config/users_database.yml b/authelia/config/users_database.yml new file mode 100644 index 0000000..f066eff --- /dev/null +++ b/authelia/config/users_database.yml @@ -0,0 +1,14 @@ +--- +############################################################### +# Users Database # +############################################################### + +users: + username1: + disabled: false + displayname: "User 1" + password: "" + email: user1@gmail.com + groups: + - admin + - user diff --git a/authelia/docker-compose.yaml b/authelia/docker-compose.yaml new file mode 100644 index 0000000..24807ec --- /dev/null +++ b/authelia/docker-compose.yaml @@ -0,0 +1,17 @@ + authelia: + image: authelia/authelia + container_name: ${CONTAINER_NAME} + volumes: + - ${HOME_DIR}/${CONTAINER_NAME}/config:/config + ports: + - ${PORT_HTTPS}:9091 + env_file: + - path: ./authelia.env + required: true + - path: ../global.env + required: true + dns: # do not use dns given by router because it will create a loop when pihole or the server goes down and starts back up + - ${DNS_OVERRIDE} + restart: unless-stopped + environment: + - TZ=Europe/Amsterdam \ No newline at end of file diff --git a/authelia/secrets/jwtsecret b/authelia/secrets/jwtsecret new file mode 100644 index 0000000..e69de29 diff --git a/authelia/secrets/oicd.pem b/authelia/secrets/oicd.pem new file mode 100644 index 0000000..e69de29 diff --git a/authelia/secrets/oidcsecret b/authelia/secrets/oidcsecret new file mode 100644 index 0000000..e69de29 diff --git a/authelia/secrets/session b/authelia/secrets/session new file mode 100644 index 0000000..e69de29 diff --git a/authelia/secrets/smtp b/authelia/secrets/smtp new file mode 100644 index 0000000..e69de29 diff --git a/authelia/secrets/storage b/authelia/secrets/storage new file mode 100644 index 0000000..e69de29 diff --git a/global.env b/global.env new file mode 100644 index 0000000..50f0e33 --- /dev/null +++ b/global.env @@ -0,0 +1,4 @@ +HOME_DIR=/home/silklaasboer +TIMEZONE=Europe/Amsterdam +LOCALTIME=/etc/localtime +COMPOSE_VERSION="3.3 \ No newline at end of file diff --git a/homeassistant/docker-compose.yaml b/homeassistant/docker-compose.yaml new file mode 100644 index 0000000..e65e672 --- /dev/null +++ b/homeassistant/docker-compose.yaml @@ -0,0 +1,21 @@ +services: + homeassistant: + container_name: ${CONTAINER_NAME} + image: "ghcr.io/home-assistant/home-assistant:stable" + volumes: + - ${HOME_DIR}/${CONTAINER_NAME}/config:/config + - ${LOCALTIME}:${LOCALTIME}:ro + - /run/dbus:/run/dbus:ro + restart: unless-stopped + env_file: + - path: ./homeassistant.env + required: true + - path: ../global.env + required: true + privileged: true + network_mode: "host" + devices: + - ${P1_PORT_DEV}:/dev/ttyACM0 + - ${ZIGBEE_DONGLE_PORT_DEV}:/dev/ttyUSB0 + environment: + DISABLE_JEMALLOC: true diff --git a/homeassistant/homeassistant.env b/homeassistant/homeassistant.env new file mode 100644 index 0000000..7e75ce1 --- /dev/null +++ b/homeassistant/homeassistant.env @@ -0,0 +1,3 @@ +CONTAINER_NAME=homeassistant +P1_PORT_DEV=/dev/ttyACM0 +ZIGBEE_DONGLE_PORT_DEV=/dev/ttyUSB0 diff --git a/llink/Dockerfile b/llink/Dockerfile new file mode 100644 index 0000000..be98fea --- /dev/null +++ b/llink/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx:1.26-alpine-slim +COPY . /usr/share/nginx/html \ No newline at end of file diff --git a/llink/LICENSE.md b/llink/LICENSE.md new file mode 100644 index 0000000..03231cc --- /dev/null +++ b/llink/LICENSE.md @@ -0,0 +1,8 @@ +MIT License +Copyright 2019-2021 Seth Cottle + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/llink/README.md b/llink/README.md new file mode 100644 index 0000000..85ba899 --- /dev/null +++ b/llink/README.md @@ -0,0 +1,41 @@ +# Littlelink (Docker Version) + +This a fork of sethcottle/littlelinek. I wanted to create a Docker version and here it is. Its a pure replica only additions is Docker related items. + +## Prerequisites + +- Docker + +## Getting Started + +### Clone the Repository + +```shell +git clone https://github.com/davisdre/littlelink.git +cd littlelink +``` + +### Modify files +Modify your `index.html` accordingly. + +### Build the Docker Image +Build the Docker image using the following command: +```shell +docker build -t littlelink . +``` + +### Build the Docker Container +Run the Docker container with the following command: +```shell +docker run -d -p 80:80 littlelink +``` + +### Access the Web Page +Open your web browser and navigate to `http://localhost` (or the IP address of your Docker host). You should see the hostname of the container displayed on the web page. + +## Files +- `docker-compose.yml`: The docker-compose.yml used to deploy your application. +- `Dockerfile`: The Dockerfile used to build the Docker image. + +## License +This project is licensed under the MIT License - see the LICENSE file for details. \ No newline at end of file diff --git a/llink/css/brands.css b/llink/css/brands.css new file mode 100644 index 0000000..0f04e30 --- /dev/null +++ b/llink/css/brands.css @@ -0,0 +1,1079 @@ +/* +* littlelink.io +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + +/* +* Built using on: +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + +/* Table of contents +–––––––––––––––––––––––––––––––––––––––––––––––––– + +- Buttons +- Brand Styles + +*/ + +/* Buttons +–––––––––––––––––––––––––––––––––––––––––––––––––– */ + +.button, +button { + display: inline-block; + text-decoration: none; + height: 100%; + text-align: center; + vertical-align: middle; + font-size: 18px; + width: 300px; + font-weight: 700; + line-height: 20px; + padding: 14px 12px 12px 12px; + letter-spacing: 0.1px; + white-space: wrap; + outline: none; + border-radius: 8px; + cursor: pointer; + +} +button:hover, +.button:focus { + color: #212121; + border-color: #888; + outline: #7AB8FF solid 3px +} +.button.button-primary { + color: #fff; + filter: brightness(90%); +} +.button.button-primary:hover, +.button.button-primary:focus { + color: #fff; + filter: brightness(90%); +} + +/* Brand Icons +–––––––––––––––––––––––––––––––––––––––––––––––––– */ + +.icon { + padding: 0px 8px 3.5px 0px; + vertical-align: middle; + width: 20px; + height: 20px; +} + +/* Brand Styles +–––––––––––––––––––––––––––––––––––––––––––––––––– */ + +/* Default (this is great for your own brand color!) */ +.button.button-default { + color: #ffffff; + background-color: #2457F5; +} +.button.button-default:hover, +.button.button-default:focus { + filter: brightness(90%); +} + +/* Amazon */ +.button.button-amazon { + color: #000000; + background-color: #FFFFFF; + border: 1px solid #212121; +} +.button.button-amazon:hover, +.button.button-amazon:focus { + filter: brightness(90%); +} + +/* Amazon Music */ +.button.button-amazon-music { + color: #000000; + background-color: #25D1DA; +} +.button.button-amazon-music:hover, +.button.button-amazon-music:focus { + filter: brightness(90%); +} + +/* Apple App Store */ +.button.button-appstore { + color: #FFFFFF; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-appstore:hover, +.button.button-appstore:focus { + filter: brightness(90%); +} + +/* Apple Music */ +.button.button-apple-music { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-apple-music:hover, +.button.button-apple-music:focus { + filter: brightness(90%); +} + +/* Apple Music Alt */ +.button.button-apple-music-alt { + color: #ffffff; + background-image: linear-gradient(to bottom, #FB5C74, #FA233B); +} +.button.button-apple-music-alt:hover, +.button.button-apple-music-alt:focus { + filter: brightness(90%); +} + +/* Apple Podcasts */ +.button.button-apple-podcasts { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-apple-podcasts:hover, +.button.button-apple-podcasts:focus { + filter: brightness(90%); +} + +/* Apple Podcasts Alt */ +.button.button-apple-podcasts-alt { + color: #ffffff; + background-image: linear-gradient(to bottom, #F452FF, #832BC1); +} +.button.button-apple-podcasts-alt:hover, +.button.button-apple-podcasts-alt:focus { + filter: brightness(90%); +} + +/* ArtStation */ +.button.button-artstation { + color: #ffffff; + background-color: #18181C; + border: 1px solid #FFFFFF; +} +.button.button-artstation:hover, +.button.button-artstation:focus { + filter: brightness(90%); +} + +/* Bandcamp */ +.button.button-bandcamp { + color: #ffffff; + background-color: #1d9fc3; +} +.button.button-bandcamp:hover, +.button.button-bandcamp:focus { + filter: brightness(90%); +} + +/* Behance */ +.button.button-behance { + color: #ffffff; + background-color: #0057FF; +} +.button.button-behance:hover, +.button.button-behance:focus { + filter: brightness(90%); +} + +/* Bluesky */ +.button.button-bluesky { + color: #FFFFFF; + background-color: #1185FE; +} + +.button.button-bluesky:hover, +.button.button-bluesky:focus { + filter: brightness(90%); +} + +/* Bluesky Alt */ +.button.button-bluesky-alt { + color: #000000; + background-color: #FFFFFF; + border: 1px solid #000000; +} +.button.button-bluesky-alt:hover, +.button.button-bluesky-alt:focus { + filter: brightness(90%); +} + +/* Buy Me a Coffee */ +.button.button-coffee { + color: #000000; + background-color: #ffdd00; +} +.button.button-coffee:hover, +.button.button-coffee:focus { + filter: brightness(90%); +} + +/* Cal.com */ +.button.button-cal { + color: #FFFFFF; + background-color: #292929; + border: 1px solid #FFFFFF; +} +.button.button-cal:hover, +.button.button-cal:focus { + filter: brightness(90%); +} + +/* Calendly */ +.button.button-calendly { + color: #FFFFFF; + background-color: #006BFF; +} +.button.button-calendly:hover, +.button.button-calendly:focus { + filter: brightness(90%); +} + +/* Cash App */ +.button.button-cash-app { + color: #ffffff; + background-image: linear-gradient(to bottom, #00d64b, #00c244); +} +.button.button-cash-app:hover, +.button.button-cash-app:focus { + filter: brightness(90%); +} + +/* dev.to */ +.button.button-dev-to { + color: #000000; + background-color: #f5f5f5; + border: 1px solid #212121; +} +.button.button-dev-to:hover, +.button.button-dev-to:focus { + filter: brightness(90%); +} + +/* Discogs */ +.button.button-discogs { + color: #000000; + background-color: #FFFFFF; + border: 1px solid #000000 +} +.button.button-discogs:hover, +.button.button-discogs:focus { + filter: brightness(90%); +} + +/* Discogs Alt */ +.button.button-discogs-alt { + color: #FFFFFF; + background-color: #000000; + border: 1px solid #FFFFFF +} +.button.button-discogs-alt:hover, +.button.button-discogs-alt:focus { + filter: brightness(90%); +} + +/* Discord */ +.button.button-discord { + color: #ffffff; + background-color: #161CBB; +} +.button.button-discord:hover, +.button.button-discord:focus { + filter: brightness(90%); +} + +/* Dribbble */ +.button.button-dribbble { + color: #000000; + background-color: #FFFFFF; + border: 1px solid #212121; +} +.button.button-dribbble:hover, +.button.button-dribbble:focus { + filter: brightness(90%); +} + +/* Etsy */ +.button.button-etsy { + color: #ffffff; + background-color: #F45800; +} +.button.button-etsy:hover, +.button.button-etsy:focus { + filter: brightness(90%); +} + +/* Facebook */ +.button.button-faceb { + color: #ffffff; + background-color: #1877f2; +} +.button.button-faceb:hover, +.button.button-faceb:focus { + filter: brightness(90%); +} + +/* Facebook Messenger */ +.button.button-messenger { + color: #ffffff; + background-image: linear-gradient( + 25deg, + #0099ff, + #5f5dff, + #a033ff, + #c740cc, + #ff5280, + #ff7061 + ); +} +.button.button-messenger:hover, +.button.button-messenger:focus { + filter: brightness(90%); +} + +/* Figma */ +.button.button-figma { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-figma:hover, +.button.button-figma:focus { + filter: brightness(90%); +} + +/* Fiverr */ +.button.button-fiverr { + color: #ffffff; + background-color: #1DBF73; +} +.button.button-fiverr:hover, +.button.button-fiverr:focus { + filter: brightness(90%); +} + +/* Flickr */ +.button.button-flickr { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-flickr:hover, +.button.button-flickr:focus { + filter: brightness(90%); +} + +/* GitHub */ +.button.button-github { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-github:hover, +.button.button-github:focus { + filter: brightness(90%); +} + +/* GitLab */ +.button.button-gitlab { + color: #ffffff; + background-color: #6151b2; +} +.button.button-gitlab:hover, +.button.button-gitlab:focus { + filter: brightness(90%); +} + +/* GoFundMe */ +.button.button-gofundme { + color: #ffffff; + background-color: #02A95C; +} +.button.button-gofundme:hover, +.button.button-gofundme:focus { + filter: brightness(90%); +} + +/* Goodreads */ +.button.button-goodreads { + color: #333333; + background-color: #f3f1e6; + border: 1px solid #212121; +} +.button.button-goodreads:hover, +.button.button-goodreads:focus { + filter: brightness(90%); +} + +/* Google Black */ +.button.button-google-black { + color: #FFFFFF; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-google-black:hover, +.button.button-google-black:focus { + filter: brightness(90%); +} + +/* Google Play Store */ +.button.button-playstore { + color: #FFFFFF; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-playstore:hover, +.button.button-playstore:focus { + filter: brightness(90%); +} + +/* Google Scholar */ +.button.button-google-scholar { + color: #000000; + background-color: #FFFFFF; + border: 1px solid #212121; +} +.button.button-google-scholar:hover, +.button.button-google-scholar:focus { + filter: brightness(90%); +} + +/* Hashnode */ +.button.button-hashnode { + color: #000000; + background-color: #ffffff; + border: 1px solid #212121; +} +.button.button-hashnode:hover, +.button.button-hashnode:focus { + filter: brightness(90%); +} + +/* Instagram */ +.button.button-instagram { + color: #ffffff; + background-image: linear-gradient(-135deg, #1400c8, #b900b4, #f50000); +} +.button.button-instagram:hover, +.button.button-instagram:focus { + filter: brightness(90%); +} + +/* Kick */ +.button.button-kick { + background-color:#000000; + color: #ffffff; + border: 1px solid #ffffff; +} +.button.button-kick:hover { + filter: brightness(90%); +} + +/* Kick Alt */ +.button.button-kick-alt { + background-color:#01e701; + color: #000; +} +.button.button-kick-alt:hover { + filter: brightness(90%); +} + +/* Kickstarter */ +.button.button-kickstarter { + color: #ffffff; + background-color: #05ce78; +} +.button.button-kickstarter:hover, +.button.button-kickstarter:focus { + filter: brightness(90%); +} + +/* Kit */ +.button.button-kit { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-kit:hover, +.button.button-kit:focus { + filter: brightness(90%); +} + +/* Ko-fi */ +.button.button-ko-fi { + color: #ffffff; + background-color: #13C3FF; +} +.button.button-ko-fi:hover, +.button.button-ko-fi:focus { + filter: brightness(90%); +} + +/* Last.fm */ +.button.button-last-fm { + color: #ffffff; + background-color: #D51007; +} +.button.button-last-fm:hover, +.button.button-last-fm:focus { + filter: brightness(90%); +} + +/* Letterboxd */ +.button.button-letterboxd { + color: #ffffff; + background-color: #2c3440; + border: 1px solid #FFFFFF; +} +.button.button-letterboxd:hover, +.button.button-letterboxd:focus { + filter: brightness(90%); +} + +/* Line */ +.button.button-line { + color: #FFFFFF; + background-color: #06C755; +} +.button.button-line:hover, +.button.button-line:focus { + filter: brightness(90%); +} + +/* LinkedIn */ +.button.button-linked { + color: #ffffff; + background-color: #2867b2; +} +.button.button-linked:hover, +.button.button-linked:focus { + filter: brightness(90%); +} + +/* Mailchimp */ +.button.button-mailchimp { + color: #000000; + background-color: #FFE01B; +} +.button.button-mailchimp:hover, +.button.button-mailchimp:focus { + filter: brightness(90%); +} + +/* Mastodon */ +.button.button-mastodon { + color: #ffffff; + background-color: #17063B; + border: 1px solid #FFFFFF; +} +.button.button-mastodon:hover, +.button.button-mastodon:focus { + filter: brightness(90%); +} + +/* Medium */ +.button.button-medium { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-medium:hover, +.button.button-medium:focus { + filter: brightness(90%); +} + +/* Microsoft */ +.button.button-microsoft { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-microsoft:hover, +.button.button-microsoft:focus { + filter: brightness(90%); +} + +/* NGL */ +.button.button-ngl { + color: #ffffff; + background-image: linear-gradient(-45deg, #ff8d10, #ec1187); +} +.button.button-ngl:hover, +.button.button-ngl:focus { + filter: brightness(90%); +} + +/* Notion */ +.button.button-notion { + color: #000000; + border: 1px solid #212121; + background-color: #ffffff; +} +.button.button-notion:hover, +.button.button-notion:focus { + filter: brightness(90%); +} + +/* OnlyFans */ +.button.button-onlyfans { + color: #ffffff; + background-color: #00AEEF; +} +.button.button-onlyfans:hover, +.button.button-onlyfans:focus { + filter: brightness(90%); +} + +/* Patreon */ +.button.button-patreon { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-patreon:hover, +.button.button-patreon:focus { + filter: brightness(90%); +} + +/* PayPal */ +.button.button-paypal { + color: #ffffff; + background-color: #003087; +} +.button.button-paypal:hover, +.button.button-paypal:focus { + filter: brightness(90%); +} + +/* Pinterest */ +.button.button-pinterest { + color: #000000; + background-color: #ffe2eb; + border: 1px solid #212121; +} +.button.button-pinterest:hover, +.button.button-pinterest:focus { + filter: brightness(90%); +} + +/* Post.news */ +.button.button-post-news { + color: #ffffff; + background-color: #678BFF; +} +.button.button-post-news:hover, +.button.button-post-news:focus { + filter: brightness(90%); +} + +/* Product Hunt */ +.button.button-product-hunt { + color: #000000; + background-color: #ffffff; + border: 1px solid #212121; +} +.button.button-producthunt:hover, +.button.button-producthunt:focus { + filter: brightness(90%); +} + +/* Read.cv */ +.button.button-read-cv { + color: #FFFFFF; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-read-cv:hover, +.button.button-read-cv:focus { + filter: brightness(90%); +} + +/* Redbubble */ +.button.button-redbubble { + color: #e41321; + background-color: #ffffff; + border: 1px solid #212121; +} +.button.button-redbubble:hover, +.button.button-redbubble:focus { + filter: brightness(90%); +} + +/* Reddit */ +.button.button-reddit { + color: #FFFFFF; + background-color: #FF4500; +} +.button.button-reddit:hover, +.button.button-reddit:focus { + filter: brightness(90%); +} + +/* Revolut */ +.button.button-revolut { + color: #000000; + background-color: #ffffff; + border: 1px solid black; +} +.button.button-revolut:hover, +.button.button-revolut:focus { + filter: brightness(90%); +} + +/* Shop */ +.button.button-shop { + color: #ffffff; + background-color: #5A31F4; +} +.button.button-shop:hover, +.button.button-shop:focus { + filter: brightness(90%); +} + +/* Signal */ +.button.button-signal { + color: #ffffff; + background-color: #3a76f0; +} +.button.button-signal:hover, +.button.button-signal:focus { + filter: brightness(90%); +} + +/* Slack */ +.button.button-slack { + color: #000000; + background-color: #FFFFFF; + border: 1px solid #212121; +} +.button.button-slack:hover, +.button.button-slack:focus { + filter: brightness(90%); +} + +/* Snapchat */ +.button.button-snapchat { + color: #000000; + background-color: #fffc00; +} +.button.button-snapchat:hover, +.button.button-snapchat:focus { + filter: brightness(90%); +} + +/* SoundCloud */ +.button.button-soundcloud { + color: #ffffff; + background-color: #ff5500; +} +.button.button-soundcloud:hover, +.button.button-soundcloud:focus { + filter: brightness(90%); +} + +/* Spotify */ +.button.button-spotify { + color: #191414; + background-color: #1db954; +} +.button.button-spotify:hover, +.button.button-spotify:focus { + filter: brightness(90%); +} + +/* Spotify Alt */ +.button.button-spotify-alt { + color: #FFFFFF; + background-color: #191414; + border: 1px solid #FFFFFF; +} +.button.button-spotify-alt:hover, +.button.button-spotify-alt:focus { + filter: brightness(90%); +} + +/* Square */ +.button.button-square { + color: #FFFFFF; + background-color: #006AFF; +} +.button.button-square:hover, +.button.button-square:focus { + filter: brightness(90%); +} + +/* Stack Overflow */ +.button.button-stack-overflow { + color: #000000; + background-color: #FFFFFF; + border: 1px solid #000000; +} +.button.button-stack-overflow:hover, +.button.button-stack-overflow:focus { + filter: brightness(90%); +} + +/* Steam */ +.button.button-steam { + color: #ffffff; + background-image: linear-gradient(90deg, #08BBFF, #2B75FF); +} +.button.button-steam:hover, +.button.button-steam:focus { + filter: brightness(90%); +} + +/* Steam Alt */ +.button.button-steam-alt { + color: #ffffff; + background-image: linear-gradient(90deg, #09172a, #072a57, #0c5085); + border: 1px solid #FFFFFF; +} +.button.button-steam-alt:hover, +.button.button-steam-alt:focus { + filter: brightness(90%); +} + +/* Strava */ +.button.button-strava { + color: #ffffff; + background-color: #fc5200; +} +.button.button-strava:hover, +.button.button-strava:focus { + filter: brightness(90%); +} + +/* Substack */ +.button.button-substack { + color: #ffffff; + background-color: #FF6719; +} +.button.button-substack:hover, +.button.button-substack:focus { + filter: brightness(90%); +} + +/* Telegram */ +.button.button-telegram { + color: #ffffff; + background-color: #3faee8; +} +.button.button-telegram:hover, +.button.button-telegram:focus { + filter: brightness(90%); +} + +/* Threads */ +.button.button-threads { + color: #FFFFFF; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-threads:hover, +.button.button-threads:focus { + filter: brightness(90%); +} + +/* Threema */ +.button.button-threema { + color: #000000; + background-color: #3fe669; +} +.button.button-threema:hover, +.button.button-threema:focus { + filter: brightness(90%); +} + +/* TikTok */ +.button.button-tiktok { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-tiktok:hover, +.button.button-tiktok:focus { + filter: brightness(90%); +} + +/* Trakt */ +.button.button-trakt { + color: #ffffff; + background-color: #ED1C24; +} +.button.button-trakt:hover, +.button.button-trakt:focus { + filter: brightness(90%); +} + +/* Trello */ +.button.button-trello { + color: #ffffff; + background-color: #0065ff; +} +.button.button-trello:hover, +.button.button-trello:focus { + filter: brightness(90%); +} + +/* Tumblr */ +.button.button-tumb { + color: #ffffff; + background-color: #131313; + border: 1px solid #FFFFFF; +} +.button.button-tumb:hover, +.button.button-tumb:focus { + filter: brightness(90%); +} + +/* Twitch */ +.button.button-twitch { + color: #ffffff; + background-color: #9146ff; +} +.button.button-twitch:hover, +.button.button-twitch:focus { + filter: brightness(90%); +} + +/* Unsplash */ +.button.button-unsplash { + color: #000000; + background-color: #ffffff; + border: 1px solid #212121; +} +.button.button-unsplash:hover, +.button.button-unsplash:focus { + filter: brightness(90%); +} + +/* Untappd */ +.button.button-untappd { + color: #000000; + background-color: #ffc000; +} +.button.button-untappd:hover, +.button.button-untappd:focus { + filter: brightness(90%); +} + +/* Upwork */ +.button.button-upwork { + color: #FFFFFF; + background-color: #14A800; +} +.button.button-upwork:hover, +.button.button-upwork:focus { + filter: brightness(90%); +} + +/* Venmo */ +.button.button-venmo { + color: #ffffff; + background-color: #008CFF; +} +.button.button-venmo:hover, +.button.button-venmo:focus { + filter: brightness(90%); +} + +/* Vimeo */ +.button.button-vimeo { + color: #ffffff; + background-color: #1ab7ea; +} +.button.button-vimeo:hover, +.button.button-vimeo:focus { + filter: brightness(90%); +} + +/* VSCO */ +.button.button-vsco { + color: #FFFFFF; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-vsco:hover, +.button.button-vsco:focus { + filter: brightness(90%); +} + +/* Website */ +.button.button-web { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-web:hover, +.button.button-web:focus { + filter: brightness(90%); +} + +/* WhatsApp */ +.button.button-whatsapp { + color: #ffffff; + background-color: #455a64; +} +.button.button-whatsapp:hover, +.button.button-whatsapp:focus { + filter: brightness(90%); +} + +/* Wordpress */ +.button.button-wordpress { + color: #ffffff; + background-color: #21759b; +} +.button.button-wordpress:hover, +.button.button-wordpress:focus { + filter: brightness(90%); +} + +/* X */ +.button.button-x { + color: #FFFFFF; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-x:hover, +.button.button-x:focus { + filter: brightness(90%); +} + +/* YouTube */ +.button.button-yt { + color: #ffffff; + background-color: #000000; + border: 1px solid #FFFFFF; +} +.button.button-yt:hover, +.button.button-yt:focus { + filter: brightness(90%); +} + +/* Zoom */ +.button.button-zoom { + color: #ffffff; + background-color: #0B5CFF; +} +.button.button-zoom:hover, +.button.button-zoom:focus { + filter: brightness(90%); +} \ No newline at end of file diff --git a/llink/css/normalize.css b/llink/css/normalize.css new file mode 100644 index 0000000..458eea1 --- /dev/null +++ b/llink/css/normalize.css @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/llink/css/skeleton-auto.css b/llink/css/skeleton-auto.css new file mode 100644 index 0000000..56f49cb --- /dev/null +++ b/llink/css/skeleton-auto.css @@ -0,0 +1,279 @@ +/* +* littlelink V1 +* https://littlelink.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/21/2019 +* +* Built using: +* +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + +/* Table of contents +–––––––––––––––––––––––––––––––––––––––––––––––––– +- Grid +- Base Styles +- Typography +- Links +- Code +- Spacing +- Utilities +* +* You'll find the button css in css/brands.css. +* +*/ + +/* Grid +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.container { + position: relative; + width: 100%; + max-width: 600px; + text-align: center; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; +} +.container-left { + position: relative; + width: 100%; + max-width: 600px; + text-align: left; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; +} +.column { + position: center; + width: 100%; + float: center; + box-sizing: border-box; +} + +/* For devices larger than 400px */ +@media (min-width: 400px) { + .container { + width: 85%; + padding: 0; + } +} + +/* For devices larger than 550px */ +@media (min-width: 550px) { + .container { + width: 80%; + } + .column, + .columns { + margin-left: 0; + } + .column:first-child, + .columns:first-child { + margin-left: 0; + } +} + +/* Base Styles +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* NOTE +html is set to 62.5% so that all the REM measurements throughout Skeleton +are based on 10px sizing. So basically 1.5rem = 15px :) */ + +html { + font-size: 100%; + color-scheme: light dark; +} +body { + font-size: 18px; + line-height: 24px; + font-weight: 400; + font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, + sans-serif; +} + +/* Typography +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +h1 { + margin-top: 0; + margin-bottom: 16px; + font-weight: 800; +} +h1 { + font-size: 24px; + line-height: 64px; + letter-spacing: 0; +} + +/* Larger than phablet */ +@media (min-width: 550px) { + h1 { + font-size: 48px; + line-height: 96px; + } +} + +p { + margin-top: 0; +} + +/* Links +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +a { + color: #2457F5; +} +a:hover { + color: #083BDA; +} +a:focus { + outline: #7AB8FF solid 2px; + border-radius: 2px; +} + +/* Link Color Dark Theme */ +@media (prefers-color-scheme: dark) { + a { + color: #4899F7; +} +a:hover { + color: #7AB8FF; +} +a:focus { + outline: #7AB8FF solid 2px; + border-radius: 2px; +} +} + +/* Code +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +code { + padding: 0.2rem 0.5rem; + margin: 0 0.2rem; + font-size: 90%; + white-space: nowrap; + background: #f1f1f1; + border: 1px solid #e1e1e1; + border-radius: 4px; +} +pre > code { + display: block; + padding: 1rem 1.5rem; + white-space: pre; +} + +/* Spacing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +button, +.button { + margin-bottom: 1rem; +} +input, +textarea, +select, +fieldset { + margin-bottom: 1.5rem; +} +pre, +blockquote, +dl, +figure, +p, +ol { + margin-bottom: 2.5rem; +} + +/* Utilities +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.u-full-width { + width: 100%; + box-sizing: border-box; +} +.u-max-full-width { + max-width: 100%; + box-sizing: border-box; +} +.u-pull-right { + float: right; +} +.u-pull-left { + float: left; +} + +/* Misc +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +hr { + margin-top: 3rem; + margin-bottom: 3.5rem; + border-width: 0; + border-top: 1px solid #e1e1e1; +} +/* Radius values: + +10%-40%: Squircles +50% (default): True circle +*/ +.avatar { + width: 128px; + height: 128px; + object-fit: cover; + background-position: center; + border-radius: 50%; +} + +/* open-sans-regular - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-600 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-700 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-800 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg#OpenSans') format('svg'); /* Legacy iOS */ +} \ No newline at end of file diff --git a/llink/css/skeleton-dark.css b/llink/css/skeleton-dark.css new file mode 100644 index 0000000..f2f57f8 --- /dev/null +++ b/llink/css/skeleton-dark.css @@ -0,0 +1,261 @@ +/* +* littlelink V1 +* https://littlelink.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/21/2019 +* +* Built using: +* +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + +/* Table of contents +–––––––––––––––––––––––––––––––––––––––––––––––––– +- Grid +- Base Styles +- Typography +- Links +- Code +- Spacing +- Utilities +* +* You'll find the button css in css/brands.css. +* +*/ + +/* Grid +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.container { + position: relative; + width: 100%; + max-width: 600px; + text-align: center; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; +} +.container-left { + position: relative; + width: 100%; + max-width: 600px; + text-align: left; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; +} +.column { + position: center; + width: 100%; + float: center; + box-sizing: border-box; +} + +/* For devices larger than 400px */ +@media (min-width: 400px) { + .container { + width: 85%; + padding: 0; + } +} + +/* For devices larger than 550px */ +@media (min-width: 550px) { + .container { + width: 80%; + } + .column, + .columns { + margin-left: 0; + } + .column:first-child, + .columns:first-child { + margin-left: 0; + } +} + +/* Base Styles +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* NOTE +html is set to 62.5% so that all the REM measurements throughout Skeleton +are based on 10px sizing. So basically 1.5rem = 15px :) */ + +html { + font-size: 100%; + color-scheme: dark; +} +body { + font-size: 18px; + line-height: 24px; + font-weight: 400; + font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, + sans-serif; +} + +/* Typography +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +h1 { + margin-top: 0; + margin-bottom: 16px; + font-weight: 800; +} +h1 { + font-size: 24px; + line-height: 64px; + letter-spacing: 0; +} + +/* Larger than phablet */ +@media (min-width: 550px) { + h1 { + font-size: 48px; + line-height: 96px; + } +} + +p { + margin-top: 0; +} + +/* Links +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +a { + color: #4899F7; +} +a:hover { + color: #7AB8FF; +} + +/* Code +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +code { + padding: 0.2rem 0.5rem; + margin: 0 0.2rem; + font-size: 90%; + white-space: nowrap; + background: #f1f1f1; + border: 1px solid #e1e1e1; + border-radius: 4px; +} +pre > code { + display: block; + padding: 1rem 1.5rem; + white-space: pre; +} + +/* Spacing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +button, +.button { + margin-bottom: 1rem; +} +input, +textarea, +select, +fieldset { + margin-bottom: 1.5rem; +} +pre, +blockquote, +dl, +figure, +p, +ol { + margin-bottom: 2.5rem; +} + +/* Utilities +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.u-full-width { + width: 100%; + box-sizing: border-box; +} +.u-max-full-width { + max-width: 100%; + box-sizing: border-box; +} +.u-pull-right { + float: right; +} +.u-pull-left { + float: left; +} + +/* Misc +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +hr { + margin-top: 3rem; + margin-bottom: 3.5rem; + border-width: 0; + border-top: 1px solid #e1e1e1; +} +/* Radius values: + +10%-40%: Squircles +50% (default): True circle +*/ +.avatar { + width: 128px; + height: 128px; + object-fit: cover; + background-position: center; + border-radius: 50%; +} + +/* open-sans-regular - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-600 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-700 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-800 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg#OpenSans') format('svg'); /* Legacy iOS */ +} \ No newline at end of file diff --git a/llink/css/skeleton-light.css b/llink/css/skeleton-light.css new file mode 100644 index 0000000..d33a65d --- /dev/null +++ b/llink/css/skeleton-light.css @@ -0,0 +1,261 @@ +/* +* littlelink V1 +* https://littlelink.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/21/2019 +* +* Built using: +* +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + +/* Table of contents +–––––––––––––––––––––––––––––––––––––––––––––––––– +- Grid +- Base Styles +- Typography +- Links +- Code +- Spacing +- Utilities +* +* You'll find the button css in css/brands.css. +* +*/ + +/* Grid +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.container { + position: relative; + width: 100%; + max-width: 600px; + text-align: center; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; +} +.container-left { + position: relative; + width: 100%; + max-width: 600px; + text-align: left; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; +} +.column { + position: center; + width: 100%; + float: center; + box-sizing: border-box; +} + +/* For devices larger than 400px */ +@media (min-width: 400px) { + .container { + width: 85%; + padding: 0; + } +} + +/* For devices larger than 550px */ +@media (min-width: 550px) { + .container { + width: 80%; + } + .column, + .columns { + margin-left: 0; + } + .column:first-child, + .columns:first-child { + margin-left: 0; + } +} + +/* Base Styles +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* NOTE +html is set to 62.5% so that all the REM measurements throughout Skeleton +are based on 10px sizing. So basically 1.5rem = 15px :) */ + +html { + font-size: 100%; + color-scheme: light; +} +body { + font-size: 18px; + line-height: 24px; + font-weight: 400; + font-family: "Open Sans", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, + sans-serif; +} + +/* Typography +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +h1 { + margin-top: 0; + margin-bottom: 16px; + font-weight: 800; +} +h1 { + font-size: 24px; + line-height: 64px; + letter-spacing: 0; +} + +/* Larger than phablet */ +@media (min-width: 550px) { + h1 { + font-size: 48px; + line-height: 96px; + } +} + +p { + margin-top: 0; +} + +/* Links +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +a { + color: #2457F5; +} +a:hover { + color: #083BDA; +} + +/* Code +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +code { + padding: 0.2rem 0.5rem; + margin: 0 0.2rem; + font-size: 90%; + white-space: nowrap; + background: #f1f1f1; + border: 1px solid #e1e1e1; + border-radius: 4px; +} +pre > code { + display: block; + padding: 1rem 1.5rem; + white-space: pre; +} + +/* Spacing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +button, +.button { + margin-bottom: 1rem; +} +input, +textarea, +select, +fieldset { + margin-bottom: 1.5rem; +} +pre, +blockquote, +dl, +figure, +p, +ol { + margin-bottom: 2.5rem; +} + +/* Utilities +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.u-full-width { + width: 100%; + box-sizing: border-box; +} +.u-max-full-width { + max-width: 100%; + box-sizing: border-box; +} +.u-pull-right { + float: right; +} +.u-pull-left { + float: left; +} + +/* Misc +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +hr { + margin-top: 3rem; + margin-bottom: 3.5rem; + border-width: 0; + border-top: 1px solid #e1e1e1; +} +/* Radius values: + +10%-40%: Squircles +50% (default): True circle +*/ +.avatar { + width: 128px; + height: 128px; + object-fit: cover; + background-position: center; + border-radius: 50%; +} + +/* open-sans-regular - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-regular.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-600 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-700 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-700.svg#OpenSans') format('svg'); /* Legacy iOS */ +} +/* open-sans-800 - vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic */ +@font-face { + font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */ + font-family: 'Open Sans'; + font-style: normal; + font-weight: 800; + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot'); /* IE9 Compat Modes */ + src: url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.woff') format('woff'), /* Modern Browsers */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-800.svg#OpenSans') format('svg'); /* Legacy iOS */ +} \ No newline at end of file diff --git a/llink/docker-compose.yml b/llink/docker-compose.yml new file mode 100644 index 0000000..8704c7e --- /dev/null +++ b/llink/docker-compose.yml @@ -0,0 +1,7 @@ +version: "3" +services: + little-link: + image: llink:latest + container_name: littlelink-server + ports: + - 80:80 \ No newline at end of file diff --git a/llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot b/llink/fonts/open-sans-v34-vietnamese_latin-ext_latin_hebrew_greek-ext_greek_cyrillic-ext_cyrillic-600.eot new file mode 100644 index 0000000000000000000000000000000000000000..12c84642f14dbea16a3163604c4552ff492b6964 GIT binary patch literal 63772 zcma&NRa6{Iv@ATspo6=^Fu1$BySuxS1Wj-m26uOtV8J~k3>w_sf;&M136|u3_x$(a zJpR2O_TJUiz51zFtyX5t&MfRSr}_3wZi zdO+JH(ezp3xc!DR*j4n4c%MWDL6IH>cfMq%iU^Axz+)6mC0~J)2uf`rJ5zi$!XFqE zV?WtUpIbD|^p)Cwg+6+Kl2evd8RM@AJ*29$x(J6^w{yMkgcOwFt5s3CFLJwYeo@TM zfqpLJLURq_7{;j~xEC&9=^RH^PLX3%PT?GAd9z5*kh`!-e_`BGYb;eV}FDOiGIfY+ckD)kP-5Wsd>GDVV zy-wS%2!3ri9VvR5Os0QxAjGcYQd{A6t?qg)@OP%<%NQ**6i>QmOa!fx3OevAH*ncc zcEnlXIYKYJlkM+u`6HKd!E{8HluakUIPRJqUI)V<8yPsM!BF#Fa}!> zIG$bT^MDeO6;XcgO0_HNV*TJ3~yAtbOyrlm^BP`cHOiEbGH2U2%HN#)Vqc82*XPUms!IP7b89Zy%-xC zj{7v`=N`(|sh@;Dfy2Mc{cZal&-}I9LJ7?bd-a1fHdb7Gl~;?uap7I))XwCk^wpdv zFHu%%pEFPThuoO>EDt}d0sdhmw03Ey4m`!?@#YQI%6;<(FS&uQq_fVeB1&IyVFXwb ztv3hQ38mN!YZj--_}K)!^bg1O@t20Msl?`dV1L4{DC`vXhIhbq z6&TJc_g?$lVob$O)0OOynSNAHNBOZ8vbB5Rl{y#sMV-@3kf|JdeJQ>gsHbLdW;vNf zs6nS*poLYfN+eGPGvlhN=UEeIZ6HP}&7mi>&n;*OV|wQ@l?bPDoE+ zB!RNK@fD>SR=d+{X>ti^vW>~fSd8}O576JE?y%J1X}$=#%Q5W;Y3Q|LbnkhpN;}=B z-?n2JvVDP7Q+YS=?sH;U-MWm_ti+pc=8v1OAR(I=I@1zQ zmdxJycx;o>S!uqY&P=-^{Hueb00JAG=2jj6Nw zVQ8qY7uI)bD)|q}%BR~sEw9?ZmM^M(9>wQYLOT~f^6A^aqp?Yv{0j2Q8uNH(vjPg7 zUP%<7+XM=d&vZ|%KBDvVNc<$(Db)`Y?D&#f5py+@FZWSus7_ezJLg%@#5edqr^&-a z2c?)B3IBF14U03OSDSRC@d;Yo5XUx+z5P&A;cRub7myp6R?zNiWn4adrd zl0WklhD$RWs?h$jC@f&IcPQHI%mjv{`4UW|%aqvc-lL+DyPO(iXC`*P5xdFe6HENn z^&Xw_lQ$uUekNcqBJ&+K%Q%vFzMd14d#U3kjlwo&rNzc2!?!sMH$+WqGXP0OC}fkr zN>)q*4B<#}pIq2_#hi=4lycQW6S{e~)zqZfu2XIBCC-_Coa<^m!G;B{@Cl7P90owO zwvkf~2g2_oQ(R2A*jzsDKw8n4)AW84em^uAv@P&1)#B(>hDhE<)ur=|80&&=lI5JX z9=U{}N>ln}Due9jqaysM8GNcVkUNM7y%NJfF9vP~zg1pa=SJ{7ot9+w+`4apXJ5)j z@T$9eaq};UTg-PB1eYQf#mqv)&IlR1!PH+WzfT~jo<)|d(t=tts{LSMrp`24+rTP? z22UEJ7ZAQ#pk50_UuPY9hRxdz4C&&nlb?3A#kG`$H|V`c^)5!1*uBa6Yuy?`MTq=A z>f`M3Z4%1!qnz$0w8QJYW-Ug-h`%C=p#?ei?XxDC=U^5CYI0z#lJnu5y=PESgcE4K zK)|7O27>&f z_pvvqd~%Em@%&?3dixHh#k(rV=v^yIvuLm&yR`ei+KGjK*D>7`Da{u|+HCM)o$qD+ z^m*Av%L>&>khAz-iEdgP*xjQKO(dYEhm3uuFIWXME#`?m`hdQupJ(d%L~eL1tv0$q zM|)Q;+w8uQO<~~S-wvyW>~U>j|F)yHusyA;0gmF7 z21chRhNA%E5g_)ow7Oh4ipBUl-ZC0{1z++oXCBgjwUGJ4eZFTgqH>xY^^zO*se