With this commit we split the build process into three stages: we start
with the JavaScript to static asset build process that requires NodeJS
then copy the result into the second stage that requires golang.
Finally, we just extract the final binaries in the third stage to keep
the shipped image as small as possible.
To separate the asset to golang conversion step from the node app build,
we add a new, independent goal for just the statik command. That way we
can cleanly separate between stuff that needs yarn/nodejs installed and
stuff that needs golang installed.
To make sure the compiled protos in the git repository are always up to
date, we add a GitHub action that checks them by compiling and diffing
the files.
To remove the need for installing protoc for building the source from
scratch, we check in the generated JavaScript and TypeScript code that
is compiled from the *.proto files.
We will make sure the protos and generated files are in sync with the
help of a GitHub Action.
By adding a .gitattributes file we also make sure the committed
generated JS code does not count towards GitHub's language statistics of
the repo.
We add a GitHub workflow that is triggered whenever a new version tag is
pushed. It will trigger a docker image build for that version and
automatically push it to the specified repo.
We add a new standalone Dockerfile that checks out the code from GitHub
and goes through all necessary build steps from scratch. The git commit
or tag that should be checked out before building can be specified as a
build argument.
To still allow more rapid development, the old Dockerfile that builds
from the local source is renamed to dev.Dockerfile to make the
distinction clear.
To make sure that long-running calls and indefinitely opened streaming
connections aren't terminated by the internal proxy, we need to disable
all timeouts except the one for reading the HTTP headers.
That timeout shouldn't be removed as we would otherwise be prone to the
slowloris attack where an attacker takes too long to send the headers
and uses up connections that way.
Once the headers are read, we either know it's a static resource and
can deliver that very cheaply or check the authentication for other
calls.
Fixes#140 and #144.
Users updating from a pre-0.3.0 version need to add the lnd-mode flag
and set it to "integrated" if they want to continue running LiT the same
way as they did before. This was forgotten to be mentioned in the
upgrade doc.
Update README, simplify documentation
Simplified to focus on the happy path
* Connect to remote instance
Instructions for connecting Terminal to a remote LND instance.
* Add link to remote instance
Link to new instructions for connecting Terminal to a remote LND instance.
* Create build from source instructions
Parse out the building from source instructions into a separate doc to simplify main README file.
* Change configuration section
Update configuration section to acknowledge ability to upgrade an LND instance to Terminal
* Add upgrading section
Ensure that there is a clear upgrade path for existing users that have modified their lnd.conf files to be compatible with Terminal
* Reference integrated configuration doc
Change configuration section to point to the integrate mode configuration doc.
* Reference remote mode instructions
In case the user needs further information point them to the more comprehensive instructions
* Update configuration settings
Change configuration settings to be more accurate and specific
* Update compatibility
Changed to v0.11.0-beta
* Update README
Add list of features and Daemon Versions table
* Combine config links
Put remote and integrated modes together but separate.
* Create troubleshooting doc
Specific information for troubleshooting
* Add troubleshooting section
Link out to the troubleshooting guide
* Update configuration to interaction
Make it more explicit as to what problem is being solved
* Add quickstart section
Quickstart section for those wanting to connect LiT with a standalone process on a remote host
* Combine remote configs into one
Reference the single remote config doc instead of chained docs.
* Update doc/config-lnd-remote.md
* Remove commands for downloading
Sort of overkill in terms of info
* Update README
Add small changes to README to address comments
* Update compile
Address small nits
* Update uipassword
Make it clearer the password needs to be changed
* Update with build tags
Added build tags for LND since it is most likely the case that LND was built without tags.