Skip to content

`TikTag is a command-line tool for preparing images for blog post or sharing.

License

Notifications You must be signed in to change notification settings

twinsant/tiktag

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TikTag

TikTag is a command-line tool for hosting and sharing digital assets via object storage.

Features (v0.1)

Tiktag server offers the following features,

  1. Install and run as a local command line app
  2. Upload and host a photo to your object storage of choice, and get its S3 URI, for publishing or sharing
  3. Configurable params via config.yml, such as,
    • your S3 compatible object storage service of choice, such as your own MinIO instance;
    • how search is configured;
    • how much asset handling logs you want to share with others

Install tiktag

Before you install tiktag, make sure that,

  1. you've got Golang installed on your local environment, typically the Terminal app in MacOS;
  2. you've cd to your asset's directory, where you're going to use tiktag for the job;
> go install github.com/tikoly-com/tiktag@latest
> which tiktag
/path/to/your/bin/tiktag

After you've installed tiktag,

  1. The first time you run tiktag will create a config file for you
> tiktag
The first time you run tiktag, will create a sample config file:
 * Save default config settings to /path/to/your/home/.tiktag/config.yaml, please edit with your own configs then run again.

  1. make sure you checked config.yaml.sample and modified config.yaml in your home tiktag directory, and configure your S3-compatible object storage of choice, such as MinIO,
 minio:
  endpoint: "s3.example.com"
  accessKey: "my_minio_access_key"
  secretKey: "my_minio_secret_key"
  useSSL: true
  bucketName: "my_minio_bucket_name"
  1. Then read the command section to share your own asset.

Command (examples)

  1. Host a photo or file,

    > tiktag myfilename.png
    > Success! Here is your hosted asset's URL,
    > https://s3.tikoly.com/village/563583552944996352.png
    
  2. Search for a stored file and retrieve it's URL,

    > tiktag find myfilename.png
    > Success! Here is your hosted asset's URL,
    > https://s3.tikoly.com/village/563583552944996352.png
    

    if your asset not found,

    > Oops...asset not found, or run `tiktag <myfile>` to host it
    

Design

Tiktag was firstly designed to streamline photo preparation before being hosted and published/referenced in a blog post. We're increasingly seeing Tiktag's potential in NFT-related business applications we're building for our clients world-wide.

We're excited to see where it leads us.

Data objects (key nouns)

List of key data objects in TikTag,

  • ttasset, top level noun / object with properties below,
    • ttid, TikTag ID, unique ID for each file/image, also as its filename, i.e., 563583552944996352.png
    • ttidhash, the hash generated upon initial upload of a file, for cryptographic verification of the file's integrity
    • filename, original filename of a photo/file, whatever it is
    • fileext, file extension name, such as .png, .jpg
    • tturl, TikTag URL of a hosted file/photo, i.e., https://s3.tikoly.com/village/563583552944996352.png
      • it's constructed like, {TargetURL}/{TargetBucket}/{ttid}.{fileext}
  • S3 (MinIO) related,
    • endpoint
    • accessKey
    • secretKey
    • useSSL
    • bucketName

Key verbs

  • tiktag, command for tagging and storing an asset
    • example of tagging an asset, tiktag myfilename.png -b s3aws
    • example of minting an asset, tiktag myfilename.png -tz sui
      • tz is initial of Chance's former/deceased co-founder, Tao Zui, in memory of his ingenuity inspiring Chance's design aesthetics)

Roadmap

  1. v0.1, Validating the idea and usability, a local command line tool
  • jobs are handled locally by user
  • supports major s3 compatible storage
  • accepts Gtihub Sponsor
  1. v1.x, Hosted version, web GUI and Web3 login (Sui Wallet / testnet, devnet)
  • for tracking assets handling
  • for more non-technical audience
  • better performance

Tech Stack

Candidate tech dependencies for making TikTag happen,

  • Written in Go
  • Local data store, ImmuDB, enforcing immutable data policies
  • Object storage, S3-compatible object storage (MinIO by default)

Contributors

Licensing

The 3-Clause BSD License

About

`TikTag is a command-line tool for preparing images for blog post or sharing.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%