mirror of
https://github.com/hassio-addons/addon-vscode-remote.git
synced 2025-05-07 04:21:22 +00:00
🎉 Initial add-on code
This commit is contained in:
parent
0cacda6409
commit
5d9b2966fc
42 changed files with 1513 additions and 0 deletions
19
.editorconfig
Executable file
19
.editorconfig
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
indent_style = space
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
ident_size = 4
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
ident_size = 2
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[*.json]
|
||||||
|
ident_size = 2
|
||||||
|
|
||||||
|
[{.gitignore,.gitkeep,.editorconfig}]
|
||||||
|
ident_size = 2
|
4
.github/CODEOWNERS
vendored
Normal file
4
.github/CODEOWNERS
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Require maintainer's :+1: for changes to the .github/ repo-config files
|
||||||
|
# mainly due to https://github.com/probot/settings privilege escalation
|
||||||
|
.github/* @frenck
|
||||||
|
.gitlab-ci.yml @frenck
|
4
.github/FUNDING.yml
vendored
Normal file
4
.github/FUNDING.yml
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
github: frenck
|
||||||
|
patreon: frenck
|
||||||
|
custom: https://frenck.dev/donate/
|
20
.github/ISSUE_TEMPLATE.md
vendored
Executable file
20
.github/ISSUE_TEMPLATE.md
vendored
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
# Problem/Motivation
|
||||||
|
|
||||||
|
> (Why the issue was filed)
|
||||||
|
|
||||||
|
## Expected behavior
|
||||||
|
|
||||||
|
> (What you expected to happen)
|
||||||
|
|
||||||
|
## Actual behavior
|
||||||
|
|
||||||
|
> (What actually happened)
|
||||||
|
|
||||||
|
## Steps to reproduce
|
||||||
|
|
||||||
|
> (How can someone else make/see it happen)
|
||||||
|
|
||||||
|
## Proposed changes
|
||||||
|
|
||||||
|
> (If you have a proposed change, workaround or fix,
|
||||||
|
> describe the rationale behind it)
|
9
.github/PULL_REQUEST_TEMPLATE.md
vendored
Executable file
9
.github/PULL_REQUEST_TEMPLATE.md
vendored
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
# Proposed Changes
|
||||||
|
|
||||||
|
> (Describe the changes and rationale behind them)
|
||||||
|
|
||||||
|
## Related Issues
|
||||||
|
|
||||||
|
> ([Github link][autolink-references] to related issues or pull requests)
|
||||||
|
|
||||||
|
[autolink-references]: https://help.github.com/articles/autolinked-references-and-urls/
|
2
.github/autolabeler.yml
vendored
Normal file
2
.github/autolabeler.yml
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
"Type: Documentation": ["*.md", "*.j2"]
|
50
.github/config.yml
vendored
Normal file
50
.github/config.yml
vendored
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
---
|
||||||
|
# Configuration for request-info - https://github.com/behaviorbot/request-info
|
||||||
|
|
||||||
|
# *OPTIONAL* Comment to reply with
|
||||||
|
# Can be either a string :
|
||||||
|
requestInfoReplyComment:
|
||||||
|
- "We would appreciate it if you could provide us with more info about this issue/pr!"
|
||||||
|
- "Hmmm... That issue/PR is kinda low on text. Could you please provide some more content?"
|
||||||
|
|
||||||
|
# *OPTIONAL* default titles to check against for lack of descriptiveness
|
||||||
|
# MUST BE ALL LOWERCASE
|
||||||
|
requestInfoDefaultTitles: []
|
||||||
|
|
||||||
|
# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given
|
||||||
|
requestInfoLabelToAdd: "Incomplete"
|
||||||
|
|
||||||
|
# *OPTIONAL* Require Pull Requests to contain more information than what is provided in the PR template
|
||||||
|
# Will fail if the pull request's body is equal to the provided template
|
||||||
|
checkPullRequestTemplate: true
|
||||||
|
|
||||||
|
# *OPTIONAL* Only warn about insufficient information on these events type
|
||||||
|
# Keys must be lowercase. Valid values are 'issue' and 'pullRequest'
|
||||||
|
requestInfoOn:
|
||||||
|
pullRequest: true
|
||||||
|
issue: true
|
||||||
|
|
||||||
|
# *OPTIONAL* Add a list of people whose Issues/PRs will not be commented on
|
||||||
|
# keys must be GitHub usernames
|
||||||
|
requestInfoUserstoExclude: []
|
||||||
|
|
||||||
|
# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome
|
||||||
|
|
||||||
|
# Comment to be posted to on first time issues
|
||||||
|
newIssueWelcomeComment: >
|
||||||
|
:wave: Thanks for opening your first issue here!
|
||||||
|
If you're reporting a :bug: bug, please make sure you include steps to reproduce it.
|
||||||
|
Also, logs, error messages and information about your hardware might be useful.
|
||||||
|
|
||||||
|
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome
|
||||||
|
|
||||||
|
# Comment to be posted to on PRs from first time contributors in your repository
|
||||||
|
newPRWelcomeComment: >
|
||||||
|
:sparkling_heart: Thanks for opening this pull request! :sparkling_heart:
|
||||||
|
If your PR gets accepted and merged in, we will invite you to the project :tada:
|
||||||
|
|
||||||
|
# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge
|
||||||
|
|
||||||
|
# Comment to be posted to on pull requests merged by a first time user
|
||||||
|
firstPRMergeComment: >
|
||||||
|
Congrats on merging your first pull request! :tada::tada::tada:
|
10
.github/invite-contributors.yml
vendored
Normal file
10
.github/invite-contributors.yml
vendored
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
# If true, this will add new contributors as outside collaborators
|
||||||
|
# to the repo their PR was merged in. Team name is ignored if this
|
||||||
|
# flag is set to true.
|
||||||
|
isOutside: false
|
||||||
|
|
||||||
|
# Specify team name to add new contributors to a specific team
|
||||||
|
# within your organization.
|
||||||
|
# Use team name or team-name-slug
|
||||||
|
team: Contributors
|
20
.github/lock.yml
vendored
Normal file
20
.github/lock.yml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
# Configuration for lock-threads - https://github.com/dessant/lock-threads
|
||||||
|
# Number of days of inactivity before a closed issue or pull request is locked
|
||||||
|
daysUntilLock: 30
|
||||||
|
|
||||||
|
# Comment to post before locking. Set to `false` to disable
|
||||||
|
lockComment: >
|
||||||
|
This thread has been automatically locked because it has not had recent
|
||||||
|
activity. Please open a new issue for related bugs and link to relevant
|
||||||
|
comments in this thread.
|
||||||
|
|
||||||
|
# Issues or pull requests with these labels will not be locked
|
||||||
|
# exemptLabels:
|
||||||
|
# - no-locking
|
||||||
|
|
||||||
|
# Limit to only `issues` or `pulls`
|
||||||
|
# only: issues
|
||||||
|
|
||||||
|
# Add a label when locking. Set to `false` to disable
|
||||||
|
lockLabel: false
|
20
.github/move.yml
vendored
Normal file
20
.github/move.yml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
# Delete the command comment when it contains no other content
|
||||||
|
deleteCommand: true
|
||||||
|
|
||||||
|
# Close the source issue after moving
|
||||||
|
closeSourceIssue: true
|
||||||
|
|
||||||
|
# Lock the source issue after moving
|
||||||
|
lockSourceIssue: true
|
||||||
|
|
||||||
|
# Mention issue and comment authors
|
||||||
|
mentionAuthors: true
|
||||||
|
|
||||||
|
# Preserve mentions in the issue content
|
||||||
|
keepContentMentions: false
|
||||||
|
|
||||||
|
# Set custom aliases for targets
|
||||||
|
# aliases:
|
||||||
|
# r: repo
|
||||||
|
# or: owner/repo
|
13
.github/no-response.yml
vendored
Normal file
13
.github/no-response.yml
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
# Configuration for probot-no-response - https://github.com/probot/no-response
|
||||||
|
# Number of days of inactivity before an Issue is closed for lack of response
|
||||||
|
daysUntilClose: 14
|
||||||
|
# Label requiring a response
|
||||||
|
responseRequiredLabel: "Status: Awaiting response"
|
||||||
|
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
|
||||||
|
closeComment: >
|
||||||
|
This issue has been automatically closed because there has been no response
|
||||||
|
to our request for more information from the original author. With only the
|
||||||
|
information that is currently in the issue, we don't have enough information
|
||||||
|
to take action. Please reach out if you have or find the answers we need so
|
||||||
|
that we can investigate further.
|
14
.github/potential-duplicates.yml
vendored
Normal file
14
.github/potential-duplicates.yml
vendored
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
---
|
||||||
|
# Label name and color to set, when potential duplicates are detected
|
||||||
|
issueLabel: "Potential duplicate"
|
||||||
|
labelColor: e6e6e6
|
||||||
|
|
||||||
|
# If similarity is higher than this threshold, issue will be marked as duplicate
|
||||||
|
threshold: 0.70
|
||||||
|
|
||||||
|
# Comment to post when potential duplicates are detected
|
||||||
|
referenceComment: >
|
||||||
|
Potential duplicates found:
|
||||||
|
{{#issues}}
|
||||||
|
- [#{{ number }}] {{ title }} ({{ accuracy }}%)
|
||||||
|
{{/issues}}
|
150
.github/settings.yml
vendored
Normal file
150
.github/settings.yml
vendored
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
---
|
||||||
|
repository:
|
||||||
|
description: "VSCode Remote - Home Assistant Community Add-ons"
|
||||||
|
homepage: https://addons.community
|
||||||
|
topics: vscode, remote, ssh, addon, addons, home-assistant, homeassistant
|
||||||
|
private: false
|
||||||
|
has_issues: true
|
||||||
|
has_projects: false
|
||||||
|
has_wiki: false
|
||||||
|
has_downloads: false
|
||||||
|
default_branch: master
|
||||||
|
allow_squash_merge: true
|
||||||
|
allow_merge_commit: false
|
||||||
|
allow_rebase_merge: true
|
||||||
|
labels:
|
||||||
|
# Priority labels
|
||||||
|
- name: "Priority: Critical"
|
||||||
|
color: ee0701
|
||||||
|
description: "This should be dealt with ASAP. Not fixing this issue would be a serious error."
|
||||||
|
- name: "Priority: High"
|
||||||
|
color: b60205
|
||||||
|
description: "After critical issues are fixed, these should be dealt with before any further issues."
|
||||||
|
- name: "Priority: Medium"
|
||||||
|
color: 0e8a16
|
||||||
|
description: "This issue may be useful, and needs some attention."
|
||||||
|
- name: "Priority: Low"
|
||||||
|
color: e4ea8a
|
||||||
|
description: "Nice addition, maybe... someday..."
|
||||||
|
|
||||||
|
# Type labels
|
||||||
|
- name: "Type: Bug"
|
||||||
|
color: ee0701
|
||||||
|
description: "Inconsistencies or issues which will cause a problem for users or implementors."
|
||||||
|
- name: "Type: Documentation"
|
||||||
|
color: 0052cc
|
||||||
|
description: "Solely about the documentation of the project."
|
||||||
|
- name: "Type: Enhancement"
|
||||||
|
color: 1d76db
|
||||||
|
description: "Enhancement of the code, not introducing new features."
|
||||||
|
- name: "Type: Feature"
|
||||||
|
color: 0e8a16
|
||||||
|
description: "New features or options."
|
||||||
|
- name: "Type: Support"
|
||||||
|
color: 5319e7
|
||||||
|
description: "Marks an issue as a support ticket."
|
||||||
|
- name: "Type: Discussion"
|
||||||
|
color: d4c5f9
|
||||||
|
description: "Marks an issue as a generic discussion ticket."
|
||||||
|
- name: "Type: Maintenance"
|
||||||
|
color: 2af79e
|
||||||
|
description: "Generic maintenance tasks, e.g., package updates."
|
||||||
|
|
||||||
|
# Additional markers
|
||||||
|
- name: "Security"
|
||||||
|
color: ee0701
|
||||||
|
description: "Marks a security issue that needs to be resolved asap."
|
||||||
|
- name: "Idea"
|
||||||
|
color: fef2c0
|
||||||
|
description: "Marks an idea, which might be excepted and implemented."
|
||||||
|
- name: "Incomplete"
|
||||||
|
color: fef2c0
|
||||||
|
description: "Marks a PR or issue that is missing information."
|
||||||
|
- name: "Pull request"
|
||||||
|
color: fbca04
|
||||||
|
description: "There is an PR opened for this issue."
|
||||||
|
- name: "Accepted"
|
||||||
|
color: c2e0c6
|
||||||
|
description: "This issue or PR has been accepted."
|
||||||
|
- name: "Declined"
|
||||||
|
color: f9d0c4
|
||||||
|
description: "This issue or PR has been declined."
|
||||||
|
- name: "Potential duplicate"
|
||||||
|
color: e6e6e6
|
||||||
|
description: "This issue has been automatically marked as a potential duplicate."
|
||||||
|
|
||||||
|
# Ongoing Status labels
|
||||||
|
- name: "Status: Triage"
|
||||||
|
color: fbca04
|
||||||
|
description: "This issue needs to be triaged."
|
||||||
|
- name: "Status: On hold"
|
||||||
|
color: cccccc
|
||||||
|
description: "Issue or PR that has been placed on hold for now."
|
||||||
|
- name: "Status: In progress"
|
||||||
|
color: fbca04
|
||||||
|
description: "Issue is currently being resolved by a developer."
|
||||||
|
- name: "Status: Stale"
|
||||||
|
color: fef2c0
|
||||||
|
description: "There has not been activity on this issue or PR for quite some time."
|
||||||
|
- name: "Status: Awaiting response"
|
||||||
|
color: fef2c0
|
||||||
|
description: "Issue or PR awaits response from the creator."
|
||||||
|
- name: "Status: Blocked"
|
||||||
|
color: fef2c0
|
||||||
|
description: "Progress on this issue is currently not possible."
|
||||||
|
|
||||||
|
# Closing status labels
|
||||||
|
- name: "Closed: Known limitation"
|
||||||
|
color: e6e6e6
|
||||||
|
description: "Issue is closed, it is a known limitation."
|
||||||
|
- name: "Closed: Expected behavior"
|
||||||
|
color: e6e6e6
|
||||||
|
description: "Issues is closed, it is expected behavior."
|
||||||
|
- name: "Closed: Duplicate"
|
||||||
|
color: e6e6e6
|
||||||
|
description: "Issue is closed, duplicate of an existing issue."
|
||||||
|
- name: "Closed: Invalid"
|
||||||
|
color: e6e6e6
|
||||||
|
description: "Issue is closed, marked as not a valid issue (e.g., an user error)."
|
||||||
|
- name: "Closed: Wrong repository"
|
||||||
|
color: e6e6e6
|
||||||
|
description: "Issue is closed, was created in the wrong repository."
|
||||||
|
- name: "Closed: Won't Fix"
|
||||||
|
color: e6e6e6
|
||||||
|
description: "Issue is closed, it won't be fixed."
|
||||||
|
- name: "Closed: Done"
|
||||||
|
color: c2e0c6
|
||||||
|
description: "Issue closed, work on this issue has been marked complete."
|
||||||
|
|
||||||
|
# Others
|
||||||
|
- name: "Beginner Friendly"
|
||||||
|
color: 0e8a16
|
||||||
|
description: "Good first issue for people wanting to contribute to the project."
|
||||||
|
- name: "Help wanted"
|
||||||
|
color: 0e8a16
|
||||||
|
description: "We need some extra helping hands or expertise in order to resolve this."
|
||||||
|
- name: "Hacktoberfest"
|
||||||
|
description: "Issues/PRs are participating in the Hacktoberfest"
|
||||||
|
color: fbca04
|
||||||
|
|
||||||
|
branches:
|
||||||
|
- name: master
|
||||||
|
protection:
|
||||||
|
required_pull_request_reviews:
|
||||||
|
# required_approving_review_count: 1
|
||||||
|
dismiss_stale_reviews: true
|
||||||
|
require_code_owner_reviews: true
|
||||||
|
dismissal_restrictions:
|
||||||
|
users: []
|
||||||
|
teams:
|
||||||
|
- Admins
|
||||||
|
- Masters
|
||||||
|
required_status_checks:
|
||||||
|
strict: false
|
||||||
|
contexts: []
|
||||||
|
enforce_admins: false
|
||||||
|
restrictions:
|
||||||
|
users: []
|
||||||
|
teams:
|
||||||
|
- Admins
|
||||||
|
- Masters
|
61
.github/stale.yml
vendored
Normal file
61
.github/stale.yml
vendored
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
---
|
||||||
|
# Configuration for probot-stale - https://github.com/probot/stale
|
||||||
|
|
||||||
|
# Number of days of inactivity before an Issue or Pull Request becomes stale
|
||||||
|
daysUntilStale: 60
|
||||||
|
|
||||||
|
# Number of days of inactivity before a stale Issue or Pull Request is closed.
|
||||||
|
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
|
||||||
|
daysUntilClose: 7
|
||||||
|
|
||||||
|
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
|
||||||
|
exemptLabels:
|
||||||
|
- "Status: On hold"
|
||||||
|
- "Status: In progress"
|
||||||
|
- "Status: Awaiting response"
|
||||||
|
- "Status: Blocked"
|
||||||
|
- "Idea"
|
||||||
|
- "Security"
|
||||||
|
|
||||||
|
# Set to true to ignore issues in a project (defaults to false)
|
||||||
|
exemptProjects: false
|
||||||
|
|
||||||
|
# Set to true to ignore issues in a milestone (defaults to false)
|
||||||
|
exemptMilestones: false
|
||||||
|
|
||||||
|
# Label to use when marking as stale
|
||||||
|
staleLabel: "Status: Stale"
|
||||||
|
|
||||||
|
# Comment to post when marking as stale. Set to `false` to disable
|
||||||
|
markComment: >
|
||||||
|
This issue has been automatically marked as stale because it has not had
|
||||||
|
recent activity. It will be closed if no further activity occurs. Thank you
|
||||||
|
for your contributions.
|
||||||
|
|
||||||
|
# Comment to post when removing the stale label.
|
||||||
|
# unmarkComment: >
|
||||||
|
# Your comment here.
|
||||||
|
unmarkComment: false
|
||||||
|
|
||||||
|
# Comment to post when closing a stale Issue or Pull Request.
|
||||||
|
# closeComment: >
|
||||||
|
# Your comment here.
|
||||||
|
closeComment: false
|
||||||
|
|
||||||
|
# Limit the number of actions per hour, from 1-30. Default is 30
|
||||||
|
limitPerRun: 30
|
||||||
|
|
||||||
|
# Limit to only `issues` or `pulls`
|
||||||
|
only: issues
|
||||||
|
|
||||||
|
# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
|
||||||
|
# pulls:
|
||||||
|
# daysUntilStale: 30
|
||||||
|
# markComment: >
|
||||||
|
# This pull request has been automatically marked as stale because it has not had
|
||||||
|
# recent activity. It will be closed if no further activity occurs. Thank you
|
||||||
|
# for your contributions.
|
||||||
|
|
||||||
|
# issues:
|
||||||
|
# exemptLabels:
|
||||||
|
# - confirmed
|
22
.github/support.yml
vendored
Normal file
22
.github/support.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
---
|
||||||
|
# Configuration for support-requests - https://github.com/dessant/support-requests
|
||||||
|
|
||||||
|
# Label used to mark issues as support requests
|
||||||
|
supportLabel: "Type: Support"
|
||||||
|
|
||||||
|
# Comment to post on issues marked as support requests. Add a link
|
||||||
|
# to a support page, or set to `false` to disable
|
||||||
|
supportComment: >
|
||||||
|
:wave: We use the issue tracker exclusively for bug reports and feature requests.
|
||||||
|
However, this issue appears to be a support request. Please use our
|
||||||
|
support channels to get help with the project.
|
||||||
|
|
||||||
|
Head over to the
|
||||||
|
[Home Assistant community forum](https://community.home-assistant.io/?u=frenck)
|
||||||
|
or join our [Discord](https://discord.me/hassioaddons) chat.
|
||||||
|
|
||||||
|
# Close issues marked as support requests
|
||||||
|
close: true
|
||||||
|
|
||||||
|
# Lock issues marked as support requests
|
||||||
|
lock: false
|
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
13
.gitlab-ci.yml
Normal file
13
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
include: https://raw.githubusercontent.com/hassio-addons/organization/master/gitlabci/addon.yml
|
||||||
|
|
||||||
|
variables:
|
||||||
|
ADDON_GITHUB_REPO: "hassio-addons/addon-vscode-remote"
|
||||||
|
ADDON_SLUG: "vscode-remote"
|
||||||
|
ADDON_TARGET: "vscode-remote"
|
||||||
|
|
||||||
|
ADDON_AARCH64_BASE: "hassioaddons/debian-base-aarch64:3.2.1"
|
||||||
|
ADDON_AMD64_BASE: "hassioaddons/debian-base-amd64:3.2.1"
|
||||||
|
ADDON_ARMHF_BASE: "hassioaddons/debian-base-armhf:3.2.1"
|
||||||
|
ADDON_ARMV7_BASE: "hassioaddons/debian-base-armv7:3.2.1"
|
||||||
|
ADDON_I386_BASE: "hassioaddons/debian-base-i386:3.2.1"
|
1
.mdlrc
Normal file
1
.mdlrc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
rules "~MD024"
|
66
.yamllint
Normal file
66
.yamllint
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
---
|
||||||
|
rules:
|
||||||
|
braces:
|
||||||
|
level: error
|
||||||
|
min-spaces-inside: 0
|
||||||
|
max-spaces-inside: 1
|
||||||
|
min-spaces-inside-empty: -1
|
||||||
|
max-spaces-inside-empty: -1
|
||||||
|
brackets:
|
||||||
|
level: error
|
||||||
|
min-spaces-inside: 0
|
||||||
|
max-spaces-inside: 0
|
||||||
|
min-spaces-inside-empty: -1
|
||||||
|
max-spaces-inside-empty: -1
|
||||||
|
colons:
|
||||||
|
level: error
|
||||||
|
max-spaces-before: 0
|
||||||
|
max-spaces-after: 1
|
||||||
|
commas:
|
||||||
|
level: error
|
||||||
|
max-spaces-before: 0
|
||||||
|
min-spaces-after: 1
|
||||||
|
max-spaces-after: 1
|
||||||
|
comments:
|
||||||
|
level: error
|
||||||
|
require-starting-space: true
|
||||||
|
min-spaces-from-content: 2
|
||||||
|
comments-indentation:
|
||||||
|
level: error
|
||||||
|
document-end:
|
||||||
|
level: error
|
||||||
|
present: false
|
||||||
|
document-start:
|
||||||
|
level: error
|
||||||
|
present: true
|
||||||
|
empty-lines:
|
||||||
|
level: error
|
||||||
|
max: 1
|
||||||
|
max-start: 0
|
||||||
|
max-end: 1
|
||||||
|
hyphens:
|
||||||
|
level: error
|
||||||
|
max-spaces-after: 1
|
||||||
|
indentation:
|
||||||
|
level: error
|
||||||
|
spaces: 2
|
||||||
|
indent-sequences: true
|
||||||
|
check-multi-line-strings: false
|
||||||
|
key-duplicates:
|
||||||
|
level: error
|
||||||
|
line-length:
|
||||||
|
ignore: |
|
||||||
|
.github/support.yml
|
||||||
|
level: warning
|
||||||
|
max: 120
|
||||||
|
allow-non-breakable-words: true
|
||||||
|
allow-non-breakable-inline-mappings: true
|
||||||
|
new-line-at-end-of-file:
|
||||||
|
level: error
|
||||||
|
new-lines:
|
||||||
|
level: error
|
||||||
|
type: unix
|
||||||
|
trailing-spaces:
|
||||||
|
level: error
|
||||||
|
truthy:
|
||||||
|
level: error
|
74
CODE_OF_CONDUCT.md
Normal file
74
CODE_OF_CONDUCT.md
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
# Code of conduct
|
||||||
|
|
||||||
|
## Our pledge
|
||||||
|
|
||||||
|
In the interest of fostering an open and welcoming environment, we as
|
||||||
|
contributors and maintainers pledge to making participation in our project and
|
||||||
|
our community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity and
|
||||||
|
orientation.
|
||||||
|
|
||||||
|
## Our standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to creating a positive environment
|
||||||
|
include:
|
||||||
|
|
||||||
|
- Using welcoming and inclusive language
|
||||||
|
- Being respectful of differing viewpoints and experiences
|
||||||
|
- Gracefully accepting constructive criticism
|
||||||
|
- Focusing on what is best for the community
|
||||||
|
- Showing empathy towards other community members
|
||||||
|
|
||||||
|
Examples of unacceptable behavior by participants include:
|
||||||
|
|
||||||
|
- The use of sexualized language or imagery and unwelcome sexual attention
|
||||||
|
or advances
|
||||||
|
- Trolling, insulting/derogatory comments, and personal or political attacks
|
||||||
|
- Public or private harassment
|
||||||
|
- Publishing others' private information, such as a physical or
|
||||||
|
electronic address, without explicit permission
|
||||||
|
- Other conduct which could reasonably be considered inappropriate
|
||||||
|
in a professional setting
|
||||||
|
|
||||||
|
## Our responsibilities
|
||||||
|
|
||||||
|
Project maintainers are responsible for clarifying the standards of acceptable
|
||||||
|
behavior and are expected to take appropriate and fair corrective action in
|
||||||
|
response to any instances of unacceptable behavior.
|
||||||
|
|
||||||
|
Project maintainers have the right and responsibility to remove, edit, or
|
||||||
|
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||||
|
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||||
|
permanently any contributor for other behaviors that they deem inappropriate,
|
||||||
|
threatening, offensive, or harmful.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies both within project spaces and in public spaces
|
||||||
|
when an individual is representing the project or its community. Examples of
|
||||||
|
representing a project or community include using an official project e-mail
|
||||||
|
address, posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event. Representation of a project may be
|
||||||
|
further defined and clarified by project maintainers.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported by contacting the project lead at frenck@addons.community. All
|
||||||
|
complaints will be reviewed and investigated and will result in a response that
|
||||||
|
is deemed necessary and appropriate to the circumstances. The project lead is
|
||||||
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||||
|
Further details of specific enforcement policies may be posted separately.
|
||||||
|
|
||||||
|
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||||
|
faith may face temporary or permanent repercussions as determined by other
|
||||||
|
members of the project's leadership.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
||||||
|
|
||||||
|
[homepage]: http://contributor-covenant.org
|
||||||
|
[version]: http://contributor-covenant.org/version/1/4/
|
29
CONTRIBUTING.md
Normal file
29
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# Contributing
|
||||||
|
|
||||||
|
When contributing to this repository, please first discuss the change you wish
|
||||||
|
to make via issue, email, or any other method with the owners of this repository
|
||||||
|
before making a change.
|
||||||
|
|
||||||
|
Please note we have a code of conduct, please follow it in all your interactions
|
||||||
|
with the project.
|
||||||
|
|
||||||
|
## Issues and feature requests
|
||||||
|
|
||||||
|
You've found a bug in the source code, a mistake in the documentation or maybe
|
||||||
|
you'd like a new feature? You can help us by submitting an issue to our
|
||||||
|
[GitHub Repository][github]. Before you create an issue, make sure you search
|
||||||
|
the archive, maybe your question was already answered.
|
||||||
|
|
||||||
|
Even better: You could submit a pull request with a fix / new feature!
|
||||||
|
|
||||||
|
## Pull request process
|
||||||
|
|
||||||
|
1. Search our repository for open or closed [pull requests][prs] that relates
|
||||||
|
to your submission. You don't want to duplicate effort.
|
||||||
|
|
||||||
|
1. You may merge the pull request in once you have the sign-off of two other
|
||||||
|
developers, or if you do not have permission to do that, you may request
|
||||||
|
the second reviewer to merge it for you.
|
||||||
|
|
||||||
|
[github]: https://github.com/hassio-addons/addon-vscode-remote/issues
|
||||||
|
[prs]: https://github.com/hassio-addons/addon-vscode-remote/pulls
|
21
LICENSE.md
Normal file
21
LICENSE.md
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Franck Nijhof
|
||||||
|
|
||||||
|
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.
|
125
README.md
Normal file
125
README.md
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
|
||||||
|
[![GitHub Release][releases-shield]][releases]
|
||||||
|
![Project Stage][project-stage-shield]
|
||||||
|
[![License][license-shield]](LICENSE.md)
|
||||||
|
|
||||||
|
![Supports aarch64 Architecture][aarch64-shield]
|
||||||
|
![Supports amd64 Architecture][amd64-shield]
|
||||||
|
![Supports armhf Architecture][armhf-shield]
|
||||||
|
![Supports armv7 Architecture][armv7-shield]
|
||||||
|
![Supports i386 Architecture][i386-shield]
|
||||||
|
|
||||||
|
[![GitLab CI][gitlabci-shield]][gitlabci]
|
||||||
|
![Project Maintenance][maintenance-shield]
|
||||||
|
[![GitHub Activity][commits-shield]][commits]
|
||||||
|
|
||||||
|
[![Discord][discord-shield]][discord]
|
||||||
|
[![Community Forum][forum-shield]][forum]
|
||||||
|
|
||||||
|
[![Sponsor Frenck via GitHub Sponsors][github-sponsors-shield]][github-sponsors]
|
||||||
|
|
||||||
|
[![Support Frenck on Patreon][patreon-shield]][patreon]
|
||||||
|
|
||||||
|
VSCode Remote access to Home Assistant.
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
A small add-on to allow to connect a VSCode client into Home Assistant,
|
||||||
|
so you can access and edit your configuration with a remote Visual Studio
|
||||||
|
Code instance with ease.
|
||||||
|
|
||||||
|
[:books: Read the full add-on documentation][docs]
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
Got questions?
|
||||||
|
|
||||||
|
You have several options to get them answered:
|
||||||
|
|
||||||
|
- The [Home Assistant Community Add-ons Discord chat server][discord] for add-on
|
||||||
|
support and feature requests.
|
||||||
|
- The [Home Assistant Discord chat server][discord-ha] for general Home
|
||||||
|
Assistant discussions and questions.
|
||||||
|
- The Home Assistant [Community Forum][forum].
|
||||||
|
- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit]
|
||||||
|
|
||||||
|
You could also [open an issue here][issue] GitHub.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
This is an active open-source project. We are always open to people who want to
|
||||||
|
use the code or contribute to it.
|
||||||
|
|
||||||
|
We have set up a separate document containing our
|
||||||
|
[contribution guidelines](CONTRIBUTING.md).
|
||||||
|
|
||||||
|
Thank you for being involved! :heart_eyes:
|
||||||
|
|
||||||
|
## Authors & contributors
|
||||||
|
|
||||||
|
The original setup of this repository is by [Franck Nijhof][frenck].
|
||||||
|
|
||||||
|
For a full list of all authors and contributors,
|
||||||
|
check [the contributor's page][contributors].
|
||||||
|
|
||||||
|
## We have got some Home Assistant add-ons for you
|
||||||
|
|
||||||
|
Want some more functionality to your Home Assistant instance?
|
||||||
|
|
||||||
|
We have created multiple add-ons for Home Assistant. For a full list, check out
|
||||||
|
our [GitHub Repository][repository].
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Franck Nijhof
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
[aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg
|
||||||
|
[amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg
|
||||||
|
[armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg
|
||||||
|
[armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg
|
||||||
|
[commits-shield]: https://img.shields.io/github/commit-activity/y/hassio-addons/addon-vscode-remote.svg
|
||||||
|
[commits]: https://github.com/hassio-addons/addon-vscode-remote/commits/master
|
||||||
|
[contributors]: https://github.com/hassio-addons/addon-vscode-remote/graphs/contributors
|
||||||
|
[discord-ha]: https://discord.gg/c5DvZ4e
|
||||||
|
[discord-shield]: https://img.shields.io/discord/478094546522079232.svg
|
||||||
|
[discord]: https://discord.me/hassioaddons
|
||||||
|
[docs]: https://github.com/hassio-addons/addon-vscode-remote/blob/master/vscode-remote/DOCS.md
|
||||||
|
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg
|
||||||
|
[forum]: https://community.home-assistant.io/?u=frenck
|
||||||
|
[frenck]: https://github.com/frenck
|
||||||
|
[github-sponsors-shield]: https://frenck.dev/wp-content/uploads/2019/12/github_sponsor.png
|
||||||
|
[github-sponsors]: https://github.com/sponsors/frenck
|
||||||
|
[gitlabci-shield]: https://gitlab.com/hassio-addons/addon-vscode-remote/badges/master/pipeline.svg
|
||||||
|
[gitlabci]: https://gitlab.com/hassio-addons/addon-vscode-remote/pipelines
|
||||||
|
[i386-shield]: https://img.shields.io/badge/i386-yes-green.svg
|
||||||
|
[issue]: https://github.com/hassio-addons/addon-vscode-remote/issues
|
||||||
|
[license-shield]: https://img.shields.io/github/license/hassio-addons/addon-vscode-remote.svg
|
||||||
|
[maintenance-shield]: https://img.shields.io/maintenance/yes/2020.svg
|
||||||
|
[patreon-shield]: https://frenck.dev/wp-content/uploads/2019/12/patreon.png
|
||||||
|
[patreon]: https://www.patreon.com/frenck
|
||||||
|
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
|
||||||
|
[reddit]: https://reddit.com/r/homeassistant
|
||||||
|
[releases-shield]: https://img.shields.io/github/release/hassio-addons/addon-vscode-remote.svg
|
||||||
|
[releases]: https://github.com/hassio-addons/addon-vscode-remote/releases
|
||||||
|
[repository]: https://github.com/hassio-addons/repository
|
69
vscode-remote/.README.j2
Normal file
69
vscode-remote/.README.j2
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
|
||||||
|
[![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield]
|
||||||
|
|
||||||
|
[![Discord][discord-shield]][discord] [![Community Forum][forum-shield]][forum]
|
||||||
|
|
||||||
|
[![Sponsor Frenck via GitHub Sponsors][github-sponsors-shield]][github-sponsors]
|
||||||
|
|
||||||
|
[![Support Frenck on Patreon][patreon-shield]][patreon]
|
||||||
|
|
||||||
|
VSCode Remote access to Home Assistant
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
A small add-on to allow to connect a VSCode client into Home Assistant,
|
||||||
|
so you can access and edit your configuration with a remote Visual Studio
|
||||||
|
Code instance with ease.
|
||||||
|
|
||||||
|
{% if channel == "edge" %}
|
||||||
|
## WARNING! THIS IS AN EDGE VERSION!
|
||||||
|
|
||||||
|
This Home Assistant Add-ons repository contains edge builds of add-ons.
|
||||||
|
Edge builds add-ons are based upon the latest development version.
|
||||||
|
|
||||||
|
- They may not work at all.
|
||||||
|
- They might stop working at any time.
|
||||||
|
- They could have a negative impact on your system.
|
||||||
|
|
||||||
|
This repository was created for:
|
||||||
|
|
||||||
|
- Anybody willing to test.
|
||||||
|
- Anybody interested in trying out upcoming add-ons or add-on features.
|
||||||
|
- Developers.
|
||||||
|
|
||||||
|
If you are more interested in stable releases of our add-ons:
|
||||||
|
|
||||||
|
<https://github.com/hassio-addons/repository>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
{% if channel == "beta" %}
|
||||||
|
## WARNING! THIS IS A BETA VERSION!
|
||||||
|
|
||||||
|
This Home Assistant Add-ons repository contains beta releases of add-ons.
|
||||||
|
|
||||||
|
- They might stop working at any time.
|
||||||
|
- They could have a negative impact on your system.
|
||||||
|
|
||||||
|
This repository was created for:
|
||||||
|
|
||||||
|
- Anybody willing to test.
|
||||||
|
- Anybody interested in trying out upcoming add-ons or add-on features.
|
||||||
|
|
||||||
|
If you are more interested in stable releases of our add-ons:
|
||||||
|
|
||||||
|
<https://github.com/hassio-addons/repository>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
[discord-shield]: https://img.shields.io/discord/478094546522079232.svg
|
||||||
|
[discord]: https://discord.me/hassioaddons
|
||||||
|
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg
|
||||||
|
[forum]: https://community.home-assistant.io/?u=frenck
|
||||||
|
[github-sponsors-shield]: https://frenck.dev/wp-content/uploads/2019/12/github_sponsor.png
|
||||||
|
[github-sponsors]: https://github.com/sponsors/frenck
|
||||||
|
[maintenance-shield]: https://img.shields.io/maintenance/yes/2020.svg
|
||||||
|
[patreon-shield]: https://frenck.dev/wp-content/uploads/2019/12/patreon.png
|
||||||
|
[patreon]: https://www.patreon.com/frenck
|
||||||
|
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
|
||||||
|
[release-shield]: https://img.shields.io/badge/version-{{ version }}-blue.svg
|
||||||
|
[release]: {{ repo }}/tree/{{ version }}
|
180
vscode-remote/DOCS.md
Normal file
180
vscode-remote/DOCS.md
Normal file
|
@ -0,0 +1,180 @@
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
|
||||||
|
A small add-on to allow to connect a VSCode client into Home Assistant,
|
||||||
|
so you can access and edit your configuration with a remote Visual Studio
|
||||||
|
Code instance with ease.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
The installation of this add-on is pretty straightforward and not different in
|
||||||
|
comparison to installing any other Home Assistant add-on.
|
||||||
|
|
||||||
|
1. Search for the "VSCode Remote" add-on in the Supervisor add-on store
|
||||||
|
and install it.
|
||||||
|
1. Set a password or add a SSH public key pair to the add-on configuration.
|
||||||
|
1. Start the "VSCode Remote" add-on.
|
||||||
|
1. Check the logs of the "VSCode Remote" add-on to see if everything went well.
|
||||||
|
1. Connect the Visual Studio Code on your desktop with Home Assistant.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
**Note**: _Remember to restart the add-on when the configuration is changed._
|
||||||
|
|
||||||
|
Example add-on configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
log_level: info
|
||||||
|
password: ''
|
||||||
|
authorized_keys:
|
||||||
|
- ssh-rsa AASDJKJKJFWJFAFLCNALCMLAK234234.....
|
||||||
|
packages:
|
||||||
|
- mariadb-client
|
||||||
|
init_commands:
|
||||||
|
- ls -la
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note**: _This is just an example, don't copy and paste it! Create your own!_
|
||||||
|
|
||||||
|
### Option: `log_level`
|
||||||
|
|
||||||
|
The `log_level` option controls the level of log output by the addon and can
|
||||||
|
be changed to be more or less verbose, which might be useful when you are
|
||||||
|
dealing with an unknown issue. Possible values are:
|
||||||
|
|
||||||
|
- `trace`: Show every detail, like all called internal functions.
|
||||||
|
- `debug`: Shows detailed debug information.
|
||||||
|
- `info`: Normal (usually) interesting events.
|
||||||
|
- `warning`: Exceptional occurrences that are not errors.
|
||||||
|
- `error`: Runtime errors that do not require immediate action.
|
||||||
|
- `fatal`: Something went terribly wrong. Add-on becomes unusable.
|
||||||
|
|
||||||
|
Please note that each level automatically includes log messages from a
|
||||||
|
more severe level, e.g., `debug` also shows `info` messages. By default,
|
||||||
|
the `log_level` is set to `info`, which is the recommended setting unless
|
||||||
|
you are troubleshooting.
|
||||||
|
|
||||||
|
### Option: `password`
|
||||||
|
|
||||||
|
Sets the password to log in with. Leaving it empty would disable the possibility
|
||||||
|
to authenticate with a password. We would highly recommend not to use this
|
||||||
|
option from a security point of view.
|
||||||
|
|
||||||
|
**Note**: _The password will be checked against HaveIBeenPwned. If it is
|
||||||
|
listed, the add-on will not start._
|
||||||
|
|
||||||
|
### Option: `authorized_keys`
|
||||||
|
|
||||||
|
Add one or more public keys to your SSH server to use with authentication.
|
||||||
|
This is the recommended over setting a password.
|
||||||
|
|
||||||
|
Please take a look at the awesome [documentation created by GitHub][github-ssh]
|
||||||
|
about using public/private key pairs and how to create them.
|
||||||
|
|
||||||
|
**Note**: _Please ensure the keys are specified as a list._
|
||||||
|
|
||||||
|
### Option: `packages`
|
||||||
|
|
||||||
|
Allows you to specify additional [Debian packages][debian-packages] to be
|
||||||
|
installed in your shell environment (e.g., Python, PHP, Go).
|
||||||
|
|
||||||
|
**Note**: _Adding many packages will result in a longer start-up
|
||||||
|
time for the add-on._
|
||||||
|
|
||||||
|
### Option: `init_commands`
|
||||||
|
|
||||||
|
Customize your VSCode environment even more with the `init_commands` option.
|
||||||
|
Add one or more shell commands to the list, and they will be executed every
|
||||||
|
single time this add-on starts.
|
||||||
|
|
||||||
|
#### Option: `i_like_to_be_pwned`
|
||||||
|
|
||||||
|
Adding this option to the add-on configuration allows to you bypass the
|
||||||
|
HaveIBeenPwned password requirement by setting it to `true`.
|
||||||
|
|
||||||
|
**Note**: _We STRONGLY suggest picking a stronger/safer password instead of
|
||||||
|
using this option! USE AT YOUR OWN RISK!_
|
||||||
|
|
||||||
|
## Known issues and limitations
|
||||||
|
|
||||||
|
- "Visual Studio Code is unable to watch for file changes in this large
|
||||||
|
workspace" (error ENOSPC)
|
||||||
|
|
||||||
|
This issue is caused by your system not having enough file handles,
|
||||||
|
which causes VSCode to be unable to watch all your files. For HassOS,
|
||||||
|
currently the only option is to click on the little cog when the
|
||||||
|
notification appears and tell it to not show again. In case you have
|
||||||
|
a generic Linux setup (e.g., Ubuntu), follow this guide by Microsoft:
|
||||||
|
|
||||||
|
<https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc>
|
||||||
|
|
||||||
|
## Changelog & Releases
|
||||||
|
|
||||||
|
This repository keeps a change log using [GitHub's releases][releases]
|
||||||
|
functionality. The format of the log is based on
|
||||||
|
[Keep a Changelog][keepchangelog].
|
||||||
|
|
||||||
|
Releases are based on [Semantic Versioning][semver], and use the format
|
||||||
|
of ``MAJOR.MINOR.PATCH``. In a nutshell, the version will be incremented
|
||||||
|
based on the following:
|
||||||
|
|
||||||
|
- ``MAJOR``: Incompatible or major changes.
|
||||||
|
- ``MINOR``: Backwards-compatible new features and enhancements.
|
||||||
|
- ``PATCH``: Backwards-compatible bugfixes and package updates.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
Got questions?
|
||||||
|
|
||||||
|
You have several options to get them answered:
|
||||||
|
|
||||||
|
- The [Home Assistant Community Add-ons Discord chat server][discord] for add-on
|
||||||
|
support and feature requests.
|
||||||
|
- The [Home Assistant Discord chat server][discord-ha] for general Home
|
||||||
|
Assistant discussions and questions.
|
||||||
|
- The Home Assistant [Community Forum][forum].
|
||||||
|
- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit]
|
||||||
|
|
||||||
|
You could also [open an issue here][issue] GitHub.
|
||||||
|
|
||||||
|
## Authors & contributors
|
||||||
|
|
||||||
|
The original setup of this repository is by [Franck Nijhof][frenck].
|
||||||
|
|
||||||
|
For a full list of all authors and contributors,
|
||||||
|
check [the contributor's page][contributors].
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2020 Franck Nijhof
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
[contributors]: https://github.com/hassio-addons/addon-vscode-remote/graphs/contributors
|
||||||
|
[discord-ha]: https://discord.gg/c5DvZ4e
|
||||||
|
[discord]: https://discord.me/hassioaddons
|
||||||
|
[forum]: https://community.home-assistant.io/?u=frenck
|
||||||
|
[frenck]: https://github.com/frenck
|
||||||
|
[issue]: https://github.com/hassio-addons/addon-vscode-remote/issues
|
||||||
|
[keepchangelog]: http://keepachangelog.com/en/1.0.0/
|
||||||
|
[reddit]: https://reddit.com/r/homeassistant
|
||||||
|
[releases]: https://github.com/hassio-addons/addon-vscode-remote/releases
|
||||||
|
[semver]: http://semver.org/spec/v2.0.0
|
||||||
|
[debian-packages]: https://packages.debian.com
|
107
vscode-remote/Dockerfile
Executable file
107
vscode-remote/Dockerfile
Executable file
|
@ -0,0 +1,107 @@
|
||||||
|
ARG BUILD_FROM=hassioaddons/debian-base:3.2.1
|
||||||
|
# hadolint ignore=DL3006
|
||||||
|
FROM ${BUILD_FROM}
|
||||||
|
|
||||||
|
# Confiure locale
|
||||||
|
ENV \
|
||||||
|
LANG=en_US.UTF-8 \
|
||||||
|
LANGUAGE=en_US:en \
|
||||||
|
LC_ALL=en_US.UTF-8
|
||||||
|
|
||||||
|
# Set shell
|
||||||
|
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||||
|
|
||||||
|
# Copy Python requirements file
|
||||||
|
COPY requirements.txt /tmp/requirements.txt
|
||||||
|
|
||||||
|
# Setup base system
|
||||||
|
ARG BUILD_ARCH=amd64
|
||||||
|
# hadolint ignore=SC2181
|
||||||
|
RUN \
|
||||||
|
apt-get update \
|
||||||
|
\
|
||||||
|
&& apt-get install -y --no-install-recommends \
|
||||||
|
ack=2.24-1 \
|
||||||
|
colordiff=1.0.18-1 \
|
||||||
|
git=1:2.20.1-2+deb10u3 \
|
||||||
|
iputils-ping=3:20180629-2+deb10u1 \
|
||||||
|
locales=2.28-10 \
|
||||||
|
mariadb-client=1:10.3.22-0+deb10u1 \
|
||||||
|
mosquitto-clients=1.5.7-1+deb10u1 \
|
||||||
|
net-tools=1.60+git20180626.aebd88e-1 \
|
||||||
|
nmap=7.70+dfsg1-6 \
|
||||||
|
openssh-client=1:7.9p1-10+deb10u2 \
|
||||||
|
openssh-server=1:7.9p1-10+deb10u2 \
|
||||||
|
openssl=1.1.1d-0+deb10u3 \
|
||||||
|
pwgen=2.08-1 \
|
||||||
|
python3-dev=3.7.3-1 \
|
||||||
|
python3=3.7.3-1 \
|
||||||
|
wget=1.20.1-1.1 \
|
||||||
|
zsh=5.7.1-1 \
|
||||||
|
\
|
||||||
|
&& sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen \
|
||||||
|
&& locale-gen \
|
||||||
|
\
|
||||||
|
&& curl https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||||
|
\
|
||||||
|
&& curl -L -s -o /usr/bin/ha \
|
||||||
|
"https://github.com/home-assistant/cli/releases/download/4.3.0/ha_${BUILD_ARCH}" \
|
||||||
|
&& chmod a+x /usr/bin/ha \
|
||||||
|
\
|
||||||
|
&& git clone --branch master --single-branch --depth 1 \
|
||||||
|
"git://github.com/robbyrussell/oh-my-zsh.git" ~/.oh-my-zsh \
|
||||||
|
\
|
||||||
|
&& git clone --branch master --single-branch --depth 1 \
|
||||||
|
"git://github.com/zsh-users/zsh-autosuggestions" \
|
||||||
|
~/.oh-my-zsh/custom/plugins/zsh-autosuggestions \
|
||||||
|
&& git clone --branch master --single-branch --depth 1 \
|
||||||
|
"git://github.com/zsh-users/zsh-syntax-highlighting.git" \
|
||||||
|
~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting \
|
||||||
|
\
|
||||||
|
&& sed -i -e "s#bin/bash#bin/zsh#" /etc/passwd \
|
||||||
|
\
|
||||||
|
&& update-alternatives \
|
||||||
|
--install /usr/bin/python python /usr/bin/python3 10 \
|
||||||
|
\
|
||||||
|
&& pip3 install --no-cache-dir -r /tmp/requirements.txt \
|
||||||
|
\
|
||||||
|
&& apt-get purge -y --auto-remove \
|
||||||
|
python3-dev \
|
||||||
|
\
|
||||||
|
&& find /usr/local/lib/python3.7/ -type d -name tests -depth -exec rm -rf {} \; \
|
||||||
|
&& find /usr/local/lib/python3.7/ -type d -name test -depth -exec rm -rf {} \; \
|
||||||
|
&& find /usr/local/lib/python3.7/ -name __pycache__ -depth -exec rm -rf {} \; \
|
||||||
|
&& find /usr/local/lib/python3.7/ -name "*.pyc" -depth -exec rm -f {} \; \
|
||||||
|
\
|
||||||
|
&& rm -fr \
|
||||||
|
/tmp/* \
|
||||||
|
/var/{cache,log}/* \
|
||||||
|
/var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Copy root filesystem
|
||||||
|
COPY rootfs /
|
||||||
|
|
||||||
|
# Build arguments
|
||||||
|
ARG BUILD_DATE
|
||||||
|
ARG BUILD_REF
|
||||||
|
ARG BUILD_VERSION
|
||||||
|
|
||||||
|
# Labels
|
||||||
|
LABEL \
|
||||||
|
io.hass.name="VSCode Remote" \
|
||||||
|
io.hass.description="VSCode Remote access to Home Assistant" \
|
||||||
|
io.hass.arch="${BUILD_ARCH}" \
|
||||||
|
io.hass.type="addon" \
|
||||||
|
io.hass.version=${BUILD_VERSION} \
|
||||||
|
maintainer="Franck Nijhof <frenck@addons.community>" \
|
||||||
|
org.opencontainers.image.title="VSCode Remote" \
|
||||||
|
org.opencontainers.image.description="VSCode Remote access to Home Assistant" \
|
||||||
|
org.opencontainers.image.vendor="Home Assistant Community Add-ons" \
|
||||||
|
org.opencontainers.image.authors="Franck Nijhof <frenck@addons.community>" \
|
||||||
|
org.opencontainers.image.licenses="MIT" \
|
||||||
|
org.opencontainers.image.url="https://addons.community" \
|
||||||
|
org.opencontainers.image.source="https://github.com/hassio-addons/addon-vscode-remote" \
|
||||||
|
org.opencontainers.image.documentation="https://github.com/hassio-addons/addon-vscode-remote/blob/master/README.md" \
|
||||||
|
org.opencontainers.image.created=${BUILD_DATE} \
|
||||||
|
org.opencontainers.image.revision=${BUILD_REF} \
|
||||||
|
org.opencontainers.image.version=${BUILD_VERSION}
|
7
vscode-remote/build.json
Normal file
7
vscode-remote/build.json
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"build_from": {
|
||||||
|
"aarch64": "hassioaddons/debian-base-aarch64:3.2.1",
|
||||||
|
"amd64": "hassioaddons/debian-base-amd64:3.2.1"
|
||||||
|
},
|
||||||
|
"args": {}
|
||||||
|
}
|
37
vscode-remote/config.json
Executable file
37
vscode-remote/config.json
Executable file
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"name": "VSCode Remote",
|
||||||
|
"version": "dev",
|
||||||
|
"slug": "vscode-remote",
|
||||||
|
"description": "VSCode Remote access to Home Assistant",
|
||||||
|
"url": "https://github.com/hassio-addons/addon-vscode-remote",
|
||||||
|
"startup": "services",
|
||||||
|
"init": false,
|
||||||
|
"arch": ["aarch64", "amd64", "armhf", "armv7", "i386"],
|
||||||
|
"boot": "auto",
|
||||||
|
"auto_uart": true,
|
||||||
|
"hassio_api": true,
|
||||||
|
"hassio_role": "manager",
|
||||||
|
"homeassistant_api": true,
|
||||||
|
"map": ["config:rw", "ssl:rw", "addons:rw", "share:rw", "backup:rw"],
|
||||||
|
"services": ["mysql:want", "mqtt:want"],
|
||||||
|
"ports": {
|
||||||
|
"22/tcp": 2222
|
||||||
|
},
|
||||||
|
"ports_description": {
|
||||||
|
"22/tcp": "VSCode Remote SSH server port"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"password": "",
|
||||||
|
"authorized_keys": [],
|
||||||
|
"packages": [],
|
||||||
|
"init_commands": []
|
||||||
|
},
|
||||||
|
"schema": {
|
||||||
|
"log_level": "list(trace|debug|info|notice|warning|error|fatal)?",
|
||||||
|
"password": "password",
|
||||||
|
"authorized_keys": ["str"],
|
||||||
|
"packages": ["str"],
|
||||||
|
"init_commands": ["str"],
|
||||||
|
"i_like_to_be_pwned": "bool?"
|
||||||
|
}
|
||||||
|
}
|
BIN
vscode-remote/icon.png
Normal file
BIN
vscode-remote/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.5 KiB |
BIN
vscode-remote/logo.png
Normal file
BIN
vscode-remote/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 61 KiB |
2
vscode-remote/requirements.txt
Normal file
2
vscode-remote/requirements.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
homeassistant_cli==0.9.1
|
||||||
|
yamllint==1.23.0
|
27
vscode-remote/rootfs/etc/cont-init.d/mosquitto.sh
Normal file
27
vscode-remote/rootfs/etc/cont-init.d/mosquitto.sh
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
# Pre-configures the Mosquitto clients, if the service is available
|
||||||
|
# ==============================================================================
|
||||||
|
declare host
|
||||||
|
declare password
|
||||||
|
declare port
|
||||||
|
declare username
|
||||||
|
|
||||||
|
if bashio::services.available "mqtt"; then
|
||||||
|
host=$(bashio::services "mqtt" "host")
|
||||||
|
password=$(bashio::services "mqtt" "password")
|
||||||
|
port=$(bashio::services "mqtt" "port")
|
||||||
|
username=$(bashio::services "mqtt" "username")
|
||||||
|
|
||||||
|
mkdir -p /root/.config
|
||||||
|
{
|
||||||
|
echo "-h ${host}"
|
||||||
|
echo "--pw ${password}"
|
||||||
|
echo "--port ${port}"
|
||||||
|
echo "--username ${username}"
|
||||||
|
} > /root/.config/mosquitto_sub
|
||||||
|
|
||||||
|
ln -s /root/.config/mosquitto_sub /root/.config/mosquitto_pub
|
||||||
|
ln -s /root/.config/mosquitto_sub /root/.config/mosquitto_rr
|
||||||
|
fi
|
25
vscode-remote/rootfs/etc/cont-init.d/mysql.sh
Normal file
25
vscode-remote/rootfs/etc/cont-init.d/mysql.sh
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
# Pre-configures the MySQL clients, if the service is available
|
||||||
|
# ==============================================================================
|
||||||
|
declare host
|
||||||
|
declare password
|
||||||
|
declare port
|
||||||
|
declare username
|
||||||
|
|
||||||
|
if bashio::services.available "mysql"; then
|
||||||
|
host=$(bashio::services "mysql" "host")
|
||||||
|
password=$(bashio::services "mysql" "password")
|
||||||
|
port=$(bashio::services "mysql" "port")
|
||||||
|
username=$(bashio::services "mysql" "username")
|
||||||
|
|
||||||
|
mkdir -p /root/.config
|
||||||
|
{
|
||||||
|
echo "[client]"
|
||||||
|
echo "host=${host}"
|
||||||
|
echo "password=\"${password}\""
|
||||||
|
echo "port=${port}"
|
||||||
|
echo "user=\"${username}\""
|
||||||
|
} > /etc/mysql/conf.d/service.cnf
|
||||||
|
fi
|
80
vscode-remote/rootfs/etc/cont-init.d/ssh.sh
Normal file
80
vscode-remote/rootfs/etc/cont-init.d/ssh.sh
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
# Configures the SSH daemon
|
||||||
|
# ==============================================================================
|
||||||
|
readonly SSH_AUTHORIZED_KEYS_PATH=/etc/ssh/authorized_keys
|
||||||
|
readonly SSH_CONFIG_PATH=/etc/ssh/sshd_config
|
||||||
|
readonly SSH_HOST_ED25519_KEY=/data/ssh_host_ed25519_key
|
||||||
|
readonly SSH_HOST_RSA_KEY=/data/ssh_host_rsa_key
|
||||||
|
declare password
|
||||||
|
|
||||||
|
# We require at least a password or an authorized key
|
||||||
|
if bashio::config.is_empty 'authorized_keys' \
|
||||||
|
&& bashio::config.is_empty 'password';
|
||||||
|
then
|
||||||
|
bashio::log.fatal
|
||||||
|
bashio::log.fatal 'Configuration of this add-on is incomplete.'
|
||||||
|
bashio::log.fatal
|
||||||
|
bashio::log.fatal 'Please be sure to set a least a password'
|
||||||
|
bashio::log.fatal 'or at least one authorized key!'
|
||||||
|
bashio::log.fatal
|
||||||
|
bashio::log.fatal 'You can configure this using the "password"'
|
||||||
|
bashio::log.fatal 'or the "authorized_keys" option in the'
|
||||||
|
bashio::log.fatal 'add-on configuration.'
|
||||||
|
bashio::log.fatal
|
||||||
|
bashio::exit.nok
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Require a secure password
|
||||||
|
if bashio::config.has_value 'password' \
|
||||||
|
&& ! bashio::config.true 'i_like_to_be_pwned'; then
|
||||||
|
bashio::config.require.safe_password 'password'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Warn about password login
|
||||||
|
if bashio::config.has_value 'password'; then
|
||||||
|
bashio::log.warning
|
||||||
|
bashio::log.warning \
|
||||||
|
'Logging in with a SSH password is security wise, a bad idea!'
|
||||||
|
bashio::log.warning 'Please, consider using a public/private key pair.'
|
||||||
|
bashio::log.warning 'What is this? https://kb.iu.edu/d/aews'
|
||||||
|
bashio::log.warning
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Generate host keys
|
||||||
|
if ! bashio::fs.file_exists "${SSH_HOST_RSA_KEY}"; then
|
||||||
|
bashio::log.notice 'RSA host key missing, generating one...'
|
||||||
|
|
||||||
|
ssh-keygen -t rsa -f "${SSH_HOST_RSA_KEY}" -N "" \
|
||||||
|
|| bashio::exit.nok 'Failed to generate RSA host key'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! bashio::fs.file_exists "${SSH_HOST_ED25519_KEY}"; then
|
||||||
|
bashio::log.notice 'ED25519 host key missing, generating one...'
|
||||||
|
ssh-keygen -t ed25519 -f "${SSH_HOST_ED25519_KEY}" -N "" \
|
||||||
|
|| bashio::exit.nok 'Failed to generate ED25519 host key'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We need to set a password for the user account
|
||||||
|
if bashio::config.has_value 'password'; then
|
||||||
|
password=$(bashio::config 'password')
|
||||||
|
else
|
||||||
|
# Use a random password in case none is set
|
||||||
|
password=$(pwgen 64 1)
|
||||||
|
fi
|
||||||
|
chpasswd <<< "root:${password}" 2&> /dev/null
|
||||||
|
|
||||||
|
# Sets up the authorized SSH keys
|
||||||
|
if bashio::config.has_value 'authorized_keys'; then
|
||||||
|
while read -r key; do
|
||||||
|
echo "${key}" >> "${SSH_AUTHORIZED_KEYS_PATH}"
|
||||||
|
done <<< "$(bashio::config 'authorized_keys')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Enable password authentication when password is set
|
||||||
|
if bashio::config.has_value 'ssh.password'; then
|
||||||
|
sed -i "s/PasswordAuthentication.*/PasswordAuthentication\\ yes/" \
|
||||||
|
"${SSH_CONFIG_PATH}" \
|
||||||
|
|| bashio::exit.nok 'Failed to setup SSH password authentication'
|
||||||
|
fi
|
66
vscode-remote/rootfs/etc/cont-init.d/user.sh
Normal file
66
vscode-remote/rootfs/etc/cont-init.d/user.sh
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
# Persists user settings and installs custom user packages.
|
||||||
|
# ==============================================================================
|
||||||
|
readonly GIT_USER_PATH=/data/git
|
||||||
|
readonly SSH_USER_PATH=/data/.ssh
|
||||||
|
readonly ZSH_HISTORY_FILE=/root/.zsh_history
|
||||||
|
readonly ZSH_HISTORY_PERSISTANT_FILE=/data/.zsh_history
|
||||||
|
|
||||||
|
# Store SSH settings in add-on data folder
|
||||||
|
if ! bashio::fs.directory_exists "${SSH_USER_PATH}"; then
|
||||||
|
mkdir -p "${SSH_USER_PATH}" \
|
||||||
|
|| bashio::exit.nok 'Failed to create a persistent .ssh folder'
|
||||||
|
|
||||||
|
chmod 700 "${SSH_USER_PATH}" \
|
||||||
|
|| bashio::exit.nok \
|
||||||
|
'Failed setting permissions on persistent .ssh folder'
|
||||||
|
fi
|
||||||
|
ln -s "${SSH_USER_PATH}" ~/.ssh
|
||||||
|
|
||||||
|
# Sets up ZSH shell
|
||||||
|
touch "${ZSH_HISTORY_PERSISTANT_FILE}" \
|
||||||
|
|| bashio::exit.nok 'Failed creating a persistent ZSH history file'
|
||||||
|
|
||||||
|
chmod 600 "$ZSH_HISTORY_PERSISTANT_FILE" \
|
||||||
|
|| bashio::exit.nok \
|
||||||
|
'Failed setting the correct permissions to the ZSH history file'
|
||||||
|
|
||||||
|
ln -s -f "$ZSH_HISTORY_PERSISTANT_FILE" "$ZSH_HISTORY_FILE" \
|
||||||
|
|| bashio::exit.nok 'Failed linking the persistant ZSH history file'
|
||||||
|
|
||||||
|
# Store user GIT settings in add-on data folder
|
||||||
|
if ! bashio::fs.directory_exists "${GIT_USER_PATH}"; then
|
||||||
|
mkdir -p "${GIT_USER_PATH}" \
|
||||||
|
|| bashio::exit.nok 'Failed to create a persistent git folder'
|
||||||
|
|
||||||
|
chmod 700 "${GIT_USER_PATH}" \
|
||||||
|
|| bashio::exit.nok \
|
||||||
|
'Failed setting permissions on persistent git folder'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! bashio::fs.file_exists "${GIT_USER_PATH}/.gitconfig"; then
|
||||||
|
touch "${GIT_USER_PATH}/.gitconfig" \
|
||||||
|
|| bashio::exit.nok 'Failed to create .gitconfig'
|
||||||
|
fi
|
||||||
|
ln -s "${GIT_USER_PATH}/.gitconfig" ~/.gitconfig
|
||||||
|
|
||||||
|
# Install user configured/requested packages
|
||||||
|
if bashio::config.has_value 'packages'; then
|
||||||
|
apt update \
|
||||||
|
|| bashio::exit.nok 'Failed updating Ubuntu packages repository indexes'
|
||||||
|
|
||||||
|
for package in $(bashio::config 'packages'); do
|
||||||
|
apt-get install -y "$package" \
|
||||||
|
|| bashio::exit.nok "Failed installing package ${package}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Executes user configured/requested commands on startup
|
||||||
|
if bashio::config.has_value 'init_commands'; then
|
||||||
|
while read -r cmd; do
|
||||||
|
eval "${cmd}" \
|
||||||
|
|| bashio::exit.nok "Failed executing init command: ${cmd}"
|
||||||
|
done <<< "$(bashio::config 'init_commands')"
|
||||||
|
fi
|
11
vscode-remote/rootfs/etc/motd
Executable file
11
vscode-remote/rootfs/etc/motd
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
_ _ _ _ _
|
||||||
|
| | | | /\ (_) | | | |
|
||||||
|
| |__| | ___ _ __ ___ ___ / \ ___ ___ _ ___| |_ __ _ _ __ | |_
|
||||||
|
| __ |/ _ \| '_ ` _ \ / _ \ / /\ \ / __/ __| / __| __/ _` | '_ \| __|
|
||||||
|
| | | | (_) | | | | | | __/ / ____ \\__ \__ \ \__ \ || (_| | | | | |_
|
||||||
|
|_| |_|\___/|_| |_| |_|\___| /_/ \_\___/___/_|___/\__\__,_|_| |_|\__|
|
||||||
|
|
||||||
|
|
||||||
|
Our command line:
|
||||||
|
$ ha help
|
9
vscode-remote/rootfs/etc/services.d/ssh/finish
Normal file
9
vscode-remote/rootfs/etc/services.d/ssh/finish
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/execlineb -S0
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
# Take down the S6 supervision tree when the code server fails
|
||||||
|
# ==============================================================================
|
||||||
|
if { s6-test ${1} -ne 0 }
|
||||||
|
if { s6-test ${1} -ne 256 }
|
||||||
|
|
||||||
|
s6-svscanctl -t /var/run/s6/services
|
24
vscode-remote/rootfs/etc/services.d/ssh/run
Normal file
24
vscode-remote/rootfs/etc/services.d/ssh/run
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#!/usr/bin/with-contenv bashio
|
||||||
|
# ==============================================================================
|
||||||
|
# Home Assistant Community Add-on: VSCode Remote
|
||||||
|
# Runs the SSH daemon
|
||||||
|
# ==============================================================================
|
||||||
|
declare -a options
|
||||||
|
|
||||||
|
bashio::log.info 'Starting the SSH Daemon for VSCode...'
|
||||||
|
|
||||||
|
# Default options
|
||||||
|
options+=(-D)
|
||||||
|
options+=(-e)
|
||||||
|
|
||||||
|
# Enable debug mode on the SSH daemon
|
||||||
|
if bashio::debug; then
|
||||||
|
options+=(-d)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ensure needed folders exists
|
||||||
|
mkdir -p /run/sshd
|
||||||
|
chmod -R 755 /run/sshd
|
||||||
|
|
||||||
|
# Start the SSH daemon
|
||||||
|
exec /usr/sbin/sshd "${options[@]}" < /dev/null
|
0
vscode-remote/rootfs/etc/ssh/authorized_keys
Normal file
0
vscode-remote/rootfs/etc/ssh/authorized_keys
Normal file
16
vscode-remote/rootfs/etc/ssh/sshd_config
Normal file
16
vscode-remote/rootfs/etc/ssh/sshd_config
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
AcceptEnv LANG LC_*
|
||||||
|
AllowAgentForwarding yes
|
||||||
|
AllowTcpForwarding yes
|
||||||
|
AuthorizedKeysFile /etc/ssh/authorized_keys ~/.ssh/authorized_keys
|
||||||
|
Banner none
|
||||||
|
ChallengeResponseAuthentication no
|
||||||
|
HostKey /data/ssh_host_ed25519_key
|
||||||
|
HostKey /data/ssh_host_rsa_key
|
||||||
|
PasswordAuthentication no
|
||||||
|
PermitRootLogin yes
|
||||||
|
Port 22
|
||||||
|
PrintMotd no
|
||||||
|
StreamLocalBindUnlink yes
|
||||||
|
Subsystem sftp /usr/lib/openssh/sftp-server
|
||||||
|
UsePAM yes
|
||||||
|
X11Forwarding yes
|
103
vscode-remote/rootfs/root/.zshrc
Executable file
103
vscode-remote/rootfs/root/.zshrc
Executable file
|
@ -0,0 +1,103 @@
|
||||||
|
# If you come from bash you might have to change your $PATH.
|
||||||
|
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||||
|
|
||||||
|
# Path to your oh-my-zsh installation.
|
||||||
|
export ZSH=$HOME/.oh-my-zsh
|
||||||
|
|
||||||
|
# Set name of the theme to load. Optionally, if you set this to "random"
|
||||||
|
# it'll load a random theme each time that oh-my-zsh is loaded.
|
||||||
|
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
||||||
|
ZSH_THEME="robbyrussell"
|
||||||
|
|
||||||
|
# Uncomment the following line to use case-sensitive completion.
|
||||||
|
# CASE_SENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to use hyphen-insensitive completion. Case
|
||||||
|
# sensitive completion must be off. _ and - will be interchangeable.
|
||||||
|
# HYPHEN_INSENSITIVE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable bi-weekly auto-update checks.
|
||||||
|
DISABLE_AUTO_UPDATE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to change how often to auto-update (in days).
|
||||||
|
# export UPDATE_ZSH_DAYS=13
|
||||||
|
|
||||||
|
# Uncomment the following line to disable colors in ls.
|
||||||
|
# DISABLE_LS_COLORS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to disable auto-setting terminal title.
|
||||||
|
# DISABLE_AUTO_TITLE="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to enable command auto-correction.
|
||||||
|
# ENABLE_CORRECTION="true"
|
||||||
|
|
||||||
|
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||||
|
COMPLETION_WAITING_DOTS="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to disable marking untracked files
|
||||||
|
# under VCS as dirty. This makes repository status check for large repositories
|
||||||
|
# much, much faster.
|
||||||
|
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||||
|
|
||||||
|
# Uncomment the following line if you want to change the command execution time
|
||||||
|
# stamp shown in the history command output.
|
||||||
|
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||||
|
# HIST_STAMPS="mm/dd/yyyy"
|
||||||
|
|
||||||
|
# Would you like to use another custom folder than $ZSH/custom?
|
||||||
|
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||||
|
|
||||||
|
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
|
||||||
|
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
||||||
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
|
plugins=(
|
||||||
|
extract
|
||||||
|
git
|
||||||
|
nmap
|
||||||
|
pip
|
||||||
|
python
|
||||||
|
rsync
|
||||||
|
zsh-autosuggestions
|
||||||
|
zsh-syntax-highlighting
|
||||||
|
)
|
||||||
|
|
||||||
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
|
# User configuration
|
||||||
|
|
||||||
|
# export MANPATH="/usr/local/man:$MANPATH"
|
||||||
|
|
||||||
|
# You may need to manually set your language environment
|
||||||
|
# export LANG=en_US.UTF-8
|
||||||
|
|
||||||
|
# Preferred editor for local and remote sessions
|
||||||
|
# if [[ -n $SSH_CONNECTION ]]; then
|
||||||
|
# export EDITOR='vim'
|
||||||
|
# else
|
||||||
|
# export EDITOR='mvim'
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Compilation flags
|
||||||
|
# export ARCHFLAGS="-arch x86_64"
|
||||||
|
|
||||||
|
# ssh
|
||||||
|
# export SSH_KEY_PATH="~/.ssh/rsa_id"
|
||||||
|
|
||||||
|
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||||
|
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||||
|
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||||
|
# For a full list of active aliases, run `alias`.
|
||||||
|
#
|
||||||
|
# Example aliases
|
||||||
|
# alias zshconfig="mate ~/.zshrc"
|
||||||
|
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||||
|
|
||||||
|
# Home Assistant Core CLI
|
||||||
|
eval "$(_HASS_CLI_COMPLETE=source_zsh hass-cli)"
|
||||||
|
|
||||||
|
# Home Assistant CLI
|
||||||
|
source <(ha completion --zsh)
|
||||||
|
|
||||||
|
# Show motd on start
|
||||||
|
cat /etc/motd
|
3
vscode-remote/rootfs/usr/bin/hassio
Executable file
3
vscode-remote/rootfs/usr/bin/hassio
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env bashio
|
||||||
|
bashio::log.yellow "The 'hassio' command is deprecated, please use 'ha' instead!"
|
||||||
|
ha "$@"
|
Loading…
Add table
Add a link
Reference in a new issue