Giter VIP home page Giter VIP logo

vanity-go's Introduction

VanityGO : Vanity import paths for Go package

Release ๐ŸŽ‰ GitHub release (latest by date) GitHub contributors GitHub Repo stars Docker Pull Docker Pull

Simple go application that allows you to share your code with a custom domain name instead of github or gitlab links or other git protocols.

Say goodbye to github.com/42Atomys/vanity-go imports. Say hello to atomys.codes/vanity-go imports ๐ŸŽ‰

When choosing a domain, keep in mind that it will be the name of your package for the foreseeable future, so choose a name that youโ€™ll still like tomorrow. People tend to choose domains with .io, .codes and .dev TLDs for their pacakges/software projects these days.

Motivation

At the beginning to clarify my code especially with gitlab and subfolders (ex: gitlab.com/subgroup-a/subgroup-b/subgroup-n/project) importing files was not sexy. And a problem occurred when the folder architecture changed!

Error 404 in all directions, in all repositories. I created a classic index.html file but having to connect to a server to do vim (sorry emacs) is very annoying.

With webhooked project, I told myself that I didn't want to redo everything, so I put this repo online

Usage

Step 1 : Configuration file

# API Version also used to protect against API or Schema changes
# Actually, the available API versions are: 1
apiVersion: 1
# List of your proxies
# You can add as many proxies as you want with logic:
# 1 proxy per final domain
proxies:
- # namespace is the domain name used for following entries
  # This can be a subdomain, a domain or a full domain name
  # subdomain.example.org, example.org or example.org/subdomain
  namespace: atomys.codes
  # All entries of this namespace will be proxied to the following address
  # Key are the name and the entrypoint/path of your proxied packages
  # Value is the current URL of your package. The Destination URL must
  # end with a valid protocol.
  # Allowed protocol are: "bzr", "fossil", "git", "hg", "svn".
  entries:
    # Root redirection can be catch with "-" or "/" as key
    # Will responds to the following URL: atomys.codes
    -: https://github.com/42Atomys/vanity-go.git
    # Redirect go-get import to atomys.codes/vanity-go
    vanity-go: https://github.com/42Atomys/vanity-go.git
    # Redirect go-get import to atomys.codes/webhooked
    webhooked: https://github.com/42Atomys/webhooked.git
    # Redirect go-get import to atomys.codes/dns-updater
    dns-updater: https://github.com/42Atomys/dns-updater.git
    # Redirect go-get import to atomys.codes/subpath/gw2api-go
    sdk/gw2api-go: https://gitlab.com/Atomys/gw2api-go.git

Step 2: Launch it ๐Ÿš€

TIPS: When you create your routing, configure it to only take into account the query params go-get=1 to follow the GoLang directive (https://pkg.go.dev/cmd/go#hdr-Remote_import_paths)

With Kubernetes

If you want to use kubernetes, for production or personnal use, refere to example/kubernetes:

https://github.com/42Atomys/vanity-go/tree/main/examples/kubernetes

With Docker image

You can use the docker image atomys/vanity-go in a very simplistic way

# Basic launch instruction using the default configuration path
docker run -it --rm -p 8080:8080 -v ${PWD}/myconfig.yaml:/config/vanity.yaml atomys/vanity-go:latest
# Use custom configuration file
docker run -it --rm -p 8080:8080 -v ${PWD}/myconfig.yaml:/myconfig.yaml atomys/vanity-go:latest serve --config /myconfig.yaml

With pre-builded binary

./vanity-go serve --config config.yaml -p 8080

To-Do

TO-Do is moving on Project Section: https://github.com/42Atomys/vanity-go/projects?type=beta

Contribution

All pull requests and issues on GitHub will welcome.

All contributions are welcome :)

Thanks

vanity-go's People

Contributors

42atomys avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vanity-go's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.