Giter VIP home page Giter VIP logo

n4vysh.dev's Introduction

n4vysh.dev

screenshot

This repository contains the source code of the website to show technical skillsets and expertise.

Clearnet Darknet
https://n4vysh.dev https://xdd456duxxh47o3uxu2ql3lj76i6e7paofm7shfts2p6gavqbvngfpqd.onion

Diagram

Features

Website specifications

Common

  • Static Site Generation with Next.js

Clearnet

Darknet

Requirements

Need Linux (64-bit) machine and following tools.

Name Description Version
direnv Shell extension ~> 2.32.3
devbox Version manager ~> 0.10.4
Docker Virtualization software ~> 20.10.14

Suggest use Editor or IDE that supports EditorConfig, LSP, formatter, and linter. For windows or macos user, suggest use WSL or Lima. Probably it works.

Development setup

Preview and edit the website on local machine as follows:

  1. Download binary of direnv with system package manager
  2. Setup shell hook of direnv
  3. Setup Nix for devbox
  4. Download binary of devbox
  5. Download docker client and start docker daemon
  6. Download git client with system package manager
  7. Clone this repository on local machine
  8. Go to the project root directory of this repository in terminal
  9. Run ./scripts/install-packages.bash to install packages via devbox and mise

frontend - clearnet:

  1. Run cd frontend/ to change frontend directory
  2. Run pnpm dev to start the server of Next.js in development mode
  3. Open http://localhost:3000/ in browser
  4. After done with the preview, press Ctrl-C in terminal to stop the server

While the preview is running, edit tsx and css files and automatically rebuild them. Suggest IDE or editor setup with TypeScript Language Server and eslint installed by pnpm.

frontend - darknet:

  1. Run cd frontend/ to change frontend directory
  2. Run just to build container image and start the server
  3. Run just url to show onion address and open in Tor Browser
  4. After done with the preview, press Ctrl-C in terminal to stop the server

infra:

Suggest IDE or editor setup with terraform-ls and yamllint installed by mise.


Use Conventional Commits 1.0.0 when create commits.

Test

Run just test to lint and format the source code with lefthook. lefthook run following tools.

Name Target type
eslint js, ts, and tsx
yamllint YAML files
taplo TOML files
just justfile
markdownlint + markdown-link-check Markdown files
vale prose
shfmt + shellharden + shellcheck shell scripts
commitlint commit messages
gitleaks secrets
typos misspellings
actionlint GitHub Actions workflow files
terraform fmt + terraform validate + terrascan + trivy + tflint + terraform-docs + checkov tf files
terragrunt hclfmt terragrunt.hcl

Update

Renovate create update pull requests every 3 months on the first day of the month.

List

Run just list to list available commands in command runner.

Deploy

Run ENV=prd just deploy to deploy server resources with Terraform and Terragrunt. Terragrunt use following terraform modules.

Tier Name
Verified terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc
Verified terraform-aws-modules/iam/aws//modules/iam-policy
Verified terraform-aws-modules/route53/aws//modules/delegation-sets
Verified terraform-aws-modules/route53/aws//modules/records
Verified terraform-aws-modules/route53/aws//modules/zones
Self‐made aws-iam-idp
Self‐made aws-route53-dnssec

Self-made modules follow Terraform Best Practices. Terragrunt show cost estimate with infracost and check budget with conftest after the call to Terraform.

License

Icon distributed under the CC-BY 4.0. All other files distributed under the Unlicense. See the LICENSE file and UNLICENSE file for details.

n4vysh.dev's People

Contributors

n4vysh avatar renovate[bot] avatar

Watchers

 avatar

n4vysh.dev's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Pending Branch Automerge

These updates await pending status checks before automerging. Click on a checkbox to abort the branch automerge, and create a PR instead.

  • chore(deps): update all non-major dependencies (@commitlint/cli, @commitlint/config-conventional, @types/node, actionlint, awscli, checkov, eslint, eslint-config-next, jetpack-io/devbox-install-action, just, markdown-link-check, markdownlint-cli, next, nginx, node, pnpm, shellcheck, terraform, terraform-docs, terraform-linters/tflint-ruleset-aws, terragrunt, tflint, trivy, typescript, typos, vercel)

Detected dependencies

asdf
.tool-versions
  • actionlint 1.6.26
  • just 1.24.0
  • node 20.11.1
  • shellcheck 0.9.0
  • shfmt 3.8.0
  • typos 1.18.2
frontend/.tool-versions
infra/.tool-versions
  • awscli 2.15.23
  • checkov 3.2.24
  • terraform 1.7.4
  • terraform-docs 0.17.0
  • terragrunt 0.55.9
  • tflint 0.50.3
  • trivy 0.49.1
dockerfile
frontend/Dockerfile
  • node 21.4.0-alpine3.17
  • nginx 1.25.4-alpine-slim
github-actions
.github/actions/configure-aws-credentials/action.yml
  • aws-actions/configure-aws-credentials v4
.github/actions/install-packages/action.yml
  • actions/cache v4
  • jetpack-io/devbox-install-action v0.9.0
  • actions/cache v4
.github/workflows/main.yml
  • actions/checkout v4
  • tj-actions/changed-files v44
  • actions/checkout v4
  • actions/checkout v4
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
.github/workflows/reusable-terragrunt-workflow.yml
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • ubuntu 22.04
  • ubuntu 22.04
  • ubuntu 22.04
npm
frontend/package.json
  • @types/node 20.14.8
  • @types/react 18.3.3
  • @types/react-dom 18.3.0
  • eslint 9.5.0
  • eslint-config-next 14.2.4
  • next 14.2.4
  • react 18.3.1
  • react-dom 18.3.1
  • typescript 5.5.2
  • typescript-language-server ^4.3.3
  • vercel ^34.2.7
  • pnpm 9.0.4
misc/package.json
  • @commitlint/cli 19.2.1
  • @commitlint/config-conventional 19.1.0
  • markdown-link-check 3.11.2
  • markdownlint-cli 0.39.0
  • pnpm 9.0.4
terraform
infra/terraform/modules/aws-iam-idp/versions.tf
  • aws ~> 3
  • tls ~> 3
  • hashicorp/terraform ~> 1
infra/terraform/modules/aws-kms-keys/versions.tf
  • aws ~> 4
  • hashicorp/terraform ~> 1
infra/terraform/modules/aws-route53-dnssec/versions.tf
  • aws ~> 4
  • hashicorp/terraform ~> 1
infra/terragrunt/base/providers/aws.tf
infra/terragrunt/base/providers/github.tf
terragrunt
infra/terragrunt/base/data/aws-iam-policy/terragrunt.hcl
infra/terragrunt/terragrunt.hcl
tflint-plugin
infra/terraform/.tflint.hcl
  • terraform-linters/tflint-ruleset-aws 0.30.0

  • Check this box to trigger a request for Renovate to run again on this repository

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.