portal

Portal is a quick and easy command-line file transfer utility from any computer to another 🌌 ✨

MIT License

Downloads
37
Stars
1.2K

Bot releases are hidden (Show)

portal - v1.2.3 Latest Release

Published by ZinoKader over 1 year ago

This version is simply a publish version. There are no code changes to the binary.
Portal is now available in homebrew/core and in the snap store.

  • If you installed with brew previously
    1. brew uninstall portal
      • brew untap ZinoKader/portal ; brew untap SpatiumPortae/portal (previous tap on personal repository)
    2. brew install portal 🎉
  • Now you can install portal from the snap store
    • sudo snap install portal

Changelog

  • 26f7a08 Create CONTRIBUTING.md
  • 74ff4f9 feat: add homebrew/core update PR creation as a job after release
  • 87d76fd feat: add snap release workflow
  • 42cbc23 feat: add version and license badges
  • 7413488 feat: homebrew/core formula, snap package (PR #76 from SpatiumPortae/develop)

Full Changelog: https://github.com/SpatiumPortae/portal/compare/v1.2.2...v1.2.3

portal - v1.2.2

Published by ZinoKader over 1 year ago

Portal v1.2.2 brings some code maintenance as well as some new features.

Raw portal command

  • Makes it possible to run portal without the fancy tui.
  • This behavior is controlled by the --tui-style flag and the configuration option tui_style with the values rich | raw

Default port config for portal serve

  • Added relay_serve_port: 8080 as a configurable default port for the relay server.

Change of the default relay server

  • Change the default relay address to portal.spatiumportae.com
  • The domain has SSL configured, which adds another layer of security to your connections when using the default relay.
  • Save your config and run portal config reset to set the new defaults.

Removed relay address validation

  • Now you can try any format you'd like, and portal will either parse it correctly or not depending on how the stdlib networking libraries handle things. The validation we did before had too many false negatives. Go crazy!

Hyperdrive on Relay!

  • There is now a static webpage for the relay, displaying the version of the relay with some sweet effects!
  • Check it out here!

hyperdrive

Full changelog

  • 933cecf Merge pull request #47 from SpatiumPortae/f/copy-with-flag
  • 11a72a8 Merge pull request #50 from SpatiumPortae/f/config-command
  • 88805c3 Merge pull request #51 from SpatiumPortae/f/refactor-config
  • 190b704 Merge pull request #52 from SpatiumPortae/f/prompt-overwrite
  • 06a65d2 Merge pull request #59 from SpatiumPortae/f/server-landing
  • 647b8b4 Merge pull request #60 from SpatiumPortae/develop
  • 2c1b6f3 Prompt refactor, and command restructuring (#58)
  • ea4f5ce chore: bump go version in go.mod
  • cea2aed chore: output 'portal' instead of 'portal-bin' for non-production build target
  • 863c92c chore: remove specified port in Dockerfile, uses 8080 by default
  • 83099b3 chore: shorten func call
  • 614878d config: default relay -> portal.spatiumportae.com
  • cceb9fe feat: embed templates in binary
  • 68826ab feat: file overwrite prompt (with configurability)
  • d1facaf feat: go into hyperdrive on hover
  • 46c371e feat: landing page for relay server
  • 7af990a feat: make relay flag description more clear
  • 2883d8d feat: make verbose flag description more clear
  • 5dd6ccd feat: refactor config for more extensibility
  • a095d42 feat: rework relay validation
  • e434c30 fix: allow relay addresses for loopback like ':5432', and 'localhost:5432'
  • 58de16c fix: better hostname (+port) validation (#56)
  • ff5009c fix: change template name for better highlighting support
  • 6fadc89 fix: close open files after compression
  • 1f90d4d fix: do not use global rng
  • f15f132 fix: edit commands for editors opening in the same process
  • 681a31c fix: nil pointer excpt when updating uninitialized confirmation UI
  • 9cd4a1e fix: remove address validation, validator package
  • efde99f fix: validate relay port numbers as well
  • 7a5db93 format: run prettier on template
  • 248b778 refactor, feat: reworked prompt logic
portal - v1.2.1

Published by ZinoKader over 1 year ago

Portal v1.2.1 fixes an issue where the overwrite prompt dialog would work correctly, but not display the prompt on the interface.

Full changelog

  • ce8b202 chore: update go to 1.20.1
  • 6a71a11 feat: allow manual running of the release workflow
  • f4e0c65 fix: wrong version displayed for server/client in version message
portal - v1.2.0

Published by ZinoKader over 1 year ago

Portal v1.2.0 brings some new QoL-features and fixes a bug where the config file would not be read.
The config file has been moved to $HOME/.config/portal/config.yml.

Prompt

  • (default!) Prompt with a [Y/n] for each file that would be overwritten when receiving files.
  • Adds --yes, -y flags that will automatically overwrite files without prompting.

Copying passwords when sending

  • Adds the --relay [relay-address] flag to the copiable portal receive 1-x-x-x command when a sender is sending files through a relay which is not the default.

Configuration

  • New config command with useful subcommands to handle your config file.

    • portal config view outputs current config with syntax highlighting.
    • portal config path outputs the path of the config file.
    • portal config edit opens the config file in default $EDITOR.
    • portal config reset resets the config file to its default values.
  • New configuration options.

    • relay: [addr:port|domain] replaces the default_rendezvous_address and default_rendezvous_port options. It incorporates both the IP and port into one value, so relay: 1.2.3.4:8726 is a valid value.
    • verbose: [true|**false**] can now be configured in the config to always output verbose info.
    • prompt_overwrite_files: [**true**|false] can be configured to always prompt, or never prompt when overwriting files.
  • Changes to config file behavior.

    • fixes reading configs from the config file (it was broken!).
    • moved the config file to $HOME/.config/portal/config.yml.

Valid relay addresses

  • Now you can use loopback relay addresses on the form localhost:5432 or :5432. Previously, one had to use 127.0.0.1:5432 to address a relay on the loopback interface.

Special thanks

Thank you @ludetie for the feature suggestions and bug reports.

Full changelog

  • b2da919 feat: cleaner, more consistent progress output
  • 09abbee feat: overwrite prompt, config file + commands, add relay flag when copying password (#53)
  • 8f87c7c fix: incorrect release links for Linux x86
  • c3276cc fix: spelling error in cURL dependency check
portal - v1.1.2

Published by ZinoKader over 1 year ago

Changelog

  • b7e946a Create CODE-OF-CONDUCT.md
  • 9921160 H/fix version goreleaser (#42)
  • 3d32f74 Merge branch 'master' into develop
  • 5b1156f build(deps): bump github.com/containerd/containerd from 1.5.9 to 1.5.18 (#40)
  • d4823ea build(deps): bump github.com/docker/distribution (#37)
  • 089ea48 build(deps): bump github.com/opencontainers/runc from 1.0.2 to 1.1.2 (#38)
  • e952709 build(deps): bump golang.org/x/net from 0.6.0 to 0.7.0 (#43)
  • ededb8a feat: compare version to relay, extract latest version in install script (#45)
portal - v1.1.1

Published by ZinoKader over 1 year ago

Bugfix release

  • 238b873 fix: use tag as version, fixes the update checker (#41)
portal - v1.1.0

Published by ZinoKader over 1 year ago

Portal v1.1.0 brings a UI refresh with transfer speed and ETAs shown, a scrollable list of files to send/receive, version checking against the latest available release, and much better command completion. A server-side bugfix is also included, which hopefully fixes the transfer ID in the beginning of passwords not being released back when a connection ended in an unexpected way.

https://user-images.githubusercontent.com/6842167/219390055-eb44052e-3a8f-4cf0-9898-98389bdb8f1a.mp4

New features

  • transfer speed and ETA shown during transfer, total time spent shown after transfer
  • better command completion using cobra
    • includes completion of passwords from the password-wordlist when invoking e.g.
      portal receive 1-astro- TAB
  • version (SEMVER) checking, comparison and warnings/errors on non-matching versions
  • show summary table of sent/received files during and after transfer

Bugfixes

  • fix a bug where transfer ID:s would not be released from the relay server in some circumstances

Full changelog

  • 1ed2c82 F/rendezvous id bug (#36)
  • e261a6c Merge branch 'develop' into f/update-checker
  • 458213f Merge branch 'master' into develop
  • 445cf30 Merge pull request #33 from SpatiumPortae/f/completion
  • 50ee5df Merge pull request #34 from SpatiumPortae/f/filetable
  • f157c34 Merge pull request #35 from SpatiumPortae/develop
  • 130953d bugfix: handle absolute and relative paths as expected (#31)
  • 83f4c1c chore: bump bubbletea
  • c334e9a chore: clean up some sender ui code
  • c5f3e43 chore: fix spelling errors
  • f8cf369 chore: more comments, typos, error message in unmanaged
  • f32bd15 chore: path typo
  • 2762b84 chore: reformulate test
  • 8e7e398 chore: renaming variables for clarity
  • f7263f0 chore: update packages
  • d093763 expose methods on filetable for setting options
  • 98fca89 feat: UI feature parity for sender and receiver
  • ae6cac6 feat: add mpore logging in server
  • 0b02380 feat: add transfer start UI message
  • 88fc726 feat: add version check to sender ui (first draft)
  • c076244 feat: add version string and production build step
  • 0daeef3 feat: added new cmmands and text stylings
  • 74f0215 feat: added password completion to receive command
  • 735e6ad feat: added sender ui for logs
  • 65bfda7 feat: added version check receiver ui (first draft)
  • d73b18c feat: added version check using unamanged output
  • d3cf072 feat: basic avg speed, transfer time esitmate
  • ea88c06 feat: break out transfer progress bar
  • 6d2876d feat: file summary table
  • 1a40a29 feat: file table with finished states, customized styling
  • 025182a feat: make version check optional
  • 6f47bb3 feat: more info in unmanaged output (time elapsed, connection stages)
  • 202c405 feat: nicer help printout, better copy
  • 4af33ba feat: remove old completion command and add new auto generated
  • d3b47c5 feat: semver package
  • 82a8f5d feat: style improvements, momentaneous transfer size printout
  • 6f1cb60 feat: update Compare method in semver package
  • 6bbf17b feat: updated warning color
  • 538da94 feat: use default completion command
  • 64cbcbe feat: use io.Reader instead of os.File
  • 71497d3 feat: use releases api instead of tags api
  • 4de20b5 feat: use zap everywhere
  • 79676f7 fix: bug when sender blocks if no msgs chan provided
  • 33453a5 fix: linting problem
  • c182bf4 fix: named completion function
  • a455d10 fix: replace calls to deprecated ui methods
portal - v1.0.7

Published by ZinoKader almost 2 years ago

Changelog

  • 3f0c93c feat: handle absolute and relative paths as expected (#32)
portal - v1.0.6

Published by ZinoKader almost 2 years ago

Changelog

  • 138e937 build with go 1.19
  • 8228c49 update badges/shields
portal - v1.0.5

Published by ZinoKader almost 2 years ago

Bugfix release

  • Remove per-message size limit (added accidentally as part of a WebSocket library change)

  • Sender and receiver had different versions of schollz/pake. The old
    version in the receiver was broken in go 1.19
    (https://github.com/golang/go/issues/50974)

  • Update call to deprecated BubbleTea function

  • Upgrade other packages

portal - v1.0.4

Published by ZinoKader almost 2 years ago

Changelog

  • 43be615 Automate test running (#21)
  • abbf4b8 F/portal module (#23)
  • cead04d F/wasm (#24)
  • 46f6372 Merge branch 'master' into develop
  • bfdb411 Merge pull request #13 from ZinoKader/f/cobra-cli
  • 3ca2f6b Merge pull request #27 from SpatiumPortae/develop
  • e6ebd76 Merge pull request #6 from ZinoKader/f/follow-symlinks
  • 1f955ba Move separate serving command and binary ("portal-rendezvous") to same binary as client program ("portal serve") (#5)
  • d1d4f93 Refactor: Rendezvous sender client (#18)
  • 6c3a0b8 Refactored Sender and Receiver to use functional option pattern (#7)
  • 01e7208 Update README.md
  • e9f57de Update README.md
  • 4dcb3d8 add more space/physics-related words
  • 11a415b chore: ReadBytes -> read, WriteBytes -> write
  • 918a4c0 chore: RendezvousConn -> Rendezvous
  • 4f88c72 chore: added .yml extension to config file
  • 90c7bf5 chore: change personal account references to 'SpatiumPortae', remove 'www.' from packages
  • eade176 chore: cleanup
  • 08ae0b5 chore: cleanup
  • 128e5a8 chore: move wasm folder into cmd (#26)
  • 2700887 chore: moved conn middleware to conn package
  • 10e0585 chore: removed ProgramOptions
  • b913172 chore: removed dead code
  • 0b08655 chore: removed dead code
  • 8c2e8b6 chore: removed unused code
  • 616572e chore: removed unused tools package
  • d19d4fb chore: rename send.go to sender.go
  • 6672753 chore: update README to reflect new brew formulae location
  • 02c49ab doc: comments
  • c013a15 doc: comments and function docs
  • f6fe459 doc: documented UI and did cleanup
  • c19ef47 doc: documented changes
  • c19c44f doc: function docs
  • 81279a0 feat: Conn tests
  • 94124b7 feat: Implemented correct handshake and made Receive accept a destination writer
  • 2899a58 feat: Key getter to conn.Transfer
  • 219e746 feat: TransferConn -> Transfer, and added multiple constructors
  • 60ecd92 feat: WIP bunch of stuff
  • 3f39cb1 feat: add new portal logo
  • 3f4f64e feat: added transfer handler
  • 0e197fa feat: added verbos logging to file
  • a15ac3e feat: added zap logger to rendezvous server
  • e8fd201 feat: change websocket library, additionally clarify internal/conn read/write functions in regards to whether they are encrypted or not.
  • b4f99ea feat: file transfer works (not sender UI)
  • c630493 feat: first pass refactor of UI (WIP)
  • 4d88cb1 feat: implemented transfer
  • 731b31e feat: made sender server non exported
  • 3761aa7 feat: moved GetLocalIP and GetOpenPort to sender package
  • 8eee851 feat: moved TransferType into protocol package
  • a8e0278 feat: moved ValidateHostname to main package
  • 803064e feat: moved files.go into seperate package
  • 5643810 feat: moved rendezvous into internal
  • d78a37c feat: moved sender to internal
  • 3d3942a feat: mover RandomSeed into main package
  • aca0938 feat: receiver UI done
  • b388939 feat: refactor connection into interface
  • 89c2ed6 feat: refactored UI and added transfer type
  • f3b9808 feat: refactored receiver
  • 4b9ea7e feat: refactored rendezvous protocol
  • 1e7470f feat: refactored transfer protocol
  • 591cd4a feat: removed logging in sender server
  • 1ca7af2 feat: removed messaging functions
  • fdc57c4 feat: removed password struct
  • c52a918 feat: revert from payload transfer using io.Copy
  • 356940a feat: sender UI refactoring
  • 0d2332d feat: start rendezvous simplification/refactoring boilerplate
  • e72b936 feat: use Generic version of Contains
  • 434be6e feat: wait for direct transfer to finnish
  • d059b27 fix: buffered signaling channel
  • 69103ae fix: fixed UI and reverted to ChunkSize
  • 60a5111 fix: fixed broken test
  • 14351a9 fix: fixed rendezvous relay bug
  • 88993c8 fix: follow symlinks and replace them with what they point to
  • 4ba36e9 fix: made singaling channel empty struct channel
  • 87f310e fix: missed type definition update
  • 05e6eb1 fix: remove unused import
  • d81e9ed fix: unsued import
  • 07d2562 fix: unused import of log
  • 97415a2 in progress: move from go-flags to cobra
  • c56a749 progress: refactored rendezvous, handshake not functional
  • 66d072b refactor: changed handling of viper config file and defaults
  • f6ef153 refactor: changed receive to get address/port from viper, and moved viper flag binding into cobre PreRun
  • a8888a2 refactor: changed to RunE for subcommands for error propagation
  • 38ef551 refactor: made footprint of Sender.ConnectToRendezvous smaller
  • 1bb1a1d refactor: moved SHELL_COMPLETION_SCRIPT to its appropriate file
  • 3a3f0ff refactor: moved add-completions subcommand into seperate file
  • 62564c9 refactor: moved the serve command into seperate file and setup required flag for port
  • 6c4f21f refactor: refactored send command to get port/address through viper
portal - v1.0.3

Published by ZinoKader almost 3 years ago

Changelog

20352a9 Merge branch 'develop'
c356619 Update README.md
566c595 add apk, deb and rem formats
feff4a8 remove 32-bit support
4f01e8f remove dragonfly support

portal - v1.0.2

Published by ZinoKader almost 3 years ago

Changelog

02422c1 Merge branch 'master' into f/github-ci
1130418 Update README.md
27693e2 Update README.md
387e281 Update README.md
4bcfa2e Update README.md
3e30d0d Update README.md
5133cfa Update README.md
5352e99 Update README.md
bcddca8 add release workflow
8811c78 better error messages, ascii art in install script
1d10eb9 fix typo for completions command hint
3e7dffc prepare releasing with github workflows
cbd6d1d update install script
d4f4c5a update install script

portal - v1.0.1

Published by ZinoKader almost 3 years ago

Changelog

d3aa830 Update README.md
fdd43c8 Update README.md
2f86e81 add install script
0ab3fb9 bash, zsh completions
69e8003 update readme

portal - v1.0.0

Published by ZinoKader almost 3 years ago

Changelog

cea2236 goreleaser cfg

portal - v0.1.2

Published by ZinoKader almost 3 years ago

Changelog

cea2236 goreleaser cfg