blockmine 1.23.4 → 1.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +82 -32
- package/README.en.md +427 -0
- package/README.md +40 -0
- package/backend/cli.js +1 -1
- package/backend/src/ai/plugin-assistant-system-prompt.md +725 -6
- package/backend/src/api/routes/aiAssistant.js +562 -103
- package/backend/src/api/routes/botUsers.js +30 -10
- package/backend/src/api/routes/bots.js +112 -21
- package/backend/src/api/routes/servers.js +14 -2
- package/backend/src/core/BotProcess.js +139 -7
- package/backend/src/core/GraphExecutionEngine.js +9 -2
- package/backend/src/core/PluginHooks.js +221 -0
- package/backend/src/core/PluginLoader.js +83 -3
- package/backend/src/core/PluginManager.js +85 -5
- package/backend/src/core/node-registries/container.js +162 -0
- package/backend/src/core/node-registries/furnace.js +143 -0
- package/backend/src/core/node-registries/inventory.js +181 -0
- package/backend/src/core/node-registries/navigation.js +111 -0
- package/backend/src/core/nodes/container/close.js +26 -0
- package/backend/src/core/nodes/container/deposit.js +88 -0
- package/backend/src/core/nodes/container/deposit_all.js +71 -0
- package/backend/src/core/nodes/container/find_item.js +77 -0
- package/backend/src/core/nodes/container/get_items.js +51 -0
- package/backend/src/core/nodes/container/open.js +111 -0
- package/backend/src/core/nodes/container/withdraw.js +91 -0
- package/backend/src/core/nodes/furnace/close.js +24 -0
- package/backend/src/core/nodes/furnace/get_status.js +74 -0
- package/backend/src/core/nodes/furnace/open.js +110 -0
- package/backend/src/core/nodes/furnace/put_fuel.js +64 -0
- package/backend/src/core/nodes/furnace/put_input.js +64 -0
- package/backend/src/core/nodes/furnace/take_output.js +69 -0
- package/backend/src/core/nodes/inventory/count_item.js +28 -0
- package/backend/src/core/nodes/inventory/drop.js +65 -0
- package/backend/src/core/nodes/inventory/equip.js +45 -0
- package/backend/src/core/nodes/inventory/find_item.js +55 -0
- package/backend/src/core/nodes/inventory/get_all.js +45 -0
- package/backend/src/core/nodes/inventory/get_held_item.js +63 -0
- package/backend/src/core/nodes/inventory/get_slot.js +46 -0
- package/backend/src/core/nodes/inventory/has_item.js +35 -0
- package/backend/src/core/nodes/inventory/select_slot.js +46 -0
- package/backend/src/core/nodes/navigation/follow.js +51 -0
- package/backend/src/core/nodes/navigation/go_to.js +53 -0
- package/backend/src/core/nodes/navigation/go_to_entity.js +69 -0
- package/backend/src/core/nodes/navigation/go_to_player.js +70 -0
- package/backend/src/core/nodes/navigation/stop.js +26 -0
- package/backend/src/core/services/BotLifecycleService.js +186 -2
- package/backend/src/core/services/MinecraftViewerService.js +2 -0
- package/backend/src/server.js +11 -1
- package/frontend/dist/assets/browser-ponyfill-DN7pwmHT.js +2 -0
- package/frontend/dist/assets/index-LSy71uwm.js +11261 -0
- package/frontend/dist/assets/index-SfhKxI4-.css +32 -0
- package/frontend/dist/flags/en.svg +32 -0
- package/frontend/dist/flags/ru.svg +5 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/dist/locales/en/admin.json +100 -0
- package/frontend/dist/locales/en/api-keys.json +58 -0
- package/frontend/dist/locales/en/bots.json +110 -0
- package/frontend/dist/locales/en/common.json +47 -0
- package/frontend/dist/locales/en/configuration.json +22 -0
- package/frontend/dist/locales/en/console.json +10 -0
- package/frontend/dist/locales/en/dashboard.json +85 -0
- package/frontend/dist/locales/en/dialogs.json +70 -0
- package/frontend/dist/locales/en/event-graphs.json +50 -0
- package/frontend/dist/locales/en/graph-store.json +70 -0
- package/frontend/dist/locales/en/login.json +34 -0
- package/frontend/dist/locales/en/management.json +114 -0
- package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/en/nodes.json +1077 -0
- package/frontend/dist/locales/en/permissions.json +50 -0
- package/frontend/dist/locales/en/plugin-detail.json +49 -0
- package/frontend/dist/locales/en/plugins.json +110 -0
- package/frontend/dist/locales/en/proxies.json +81 -0
- package/frontend/dist/locales/en/servers.json +39 -0
- package/frontend/dist/locales/en/setup.json +17 -0
- package/frontend/dist/locales/en/sidebar.json +27 -0
- package/frontend/dist/locales/en/tasks.json +62 -0
- package/frontend/dist/locales/en/visual-editor.json +219 -0
- package/frontend/dist/locales/en/websocket.json +86 -0
- package/frontend/dist/locales/ru/admin.json +100 -0
- package/frontend/dist/locales/ru/api-keys.json +58 -0
- package/frontend/dist/locales/ru/bots.json +110 -0
- package/frontend/dist/locales/ru/common.json +49 -0
- package/frontend/dist/locales/ru/configuration.json +22 -0
- package/frontend/dist/locales/ru/console.json +10 -0
- package/frontend/dist/locales/ru/dashboard.json +85 -0
- package/frontend/dist/locales/ru/dialogs.json +70 -0
- package/frontend/dist/locales/ru/event-graphs.json +50 -0
- package/frontend/dist/locales/ru/graph-store.json +70 -0
- package/frontend/dist/locales/ru/login.json +34 -0
- package/frontend/dist/locales/ru/management.json +114 -0
- package/frontend/dist/locales/ru/minecraft-viewer.json +27 -0
- package/frontend/dist/locales/ru/nodes.json +1077 -0
- package/frontend/dist/locales/ru/permissions.json +50 -0
- package/frontend/dist/locales/ru/plugin-detail.json +49 -0
- package/frontend/dist/locales/ru/plugins.json +110 -0
- package/frontend/dist/locales/ru/proxies.json +81 -0
- package/frontend/dist/locales/ru/servers.json +39 -0
- package/frontend/dist/locales/ru/setup.json +17 -0
- package/frontend/dist/locales/ru/sidebar.json +27 -0
- package/frontend/dist/locales/ru/tasks.json +62 -0
- package/frontend/dist/locales/ru/visual-editor.json +221 -0
- package/frontend/dist/locales/ru/websocket.json +86 -0
- package/frontend/dist/minecraft-assets/items/acacia_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/acacia_chest_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/acacia_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/acacia_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/acacia_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/amethyst_shard.png +0 -0
- package/frontend/dist/minecraft-assets/items/angler_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/apple.png +0 -0
- package/frontend/dist/minecraft-assets/items/archer_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/armor_stand.png +0 -0
- package/frontend/dist/minecraft-assets/items/arms_up_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/arrow.png +0 -0
- package/frontend/dist/minecraft-assets/items/axolotl_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/baked_potato.png +0 -0
- package/frontend/dist/minecraft-assets/items/bamboo.png +0 -0
- package/frontend/dist/minecraft-assets/items/bamboo_chest_raft.png +0 -0
- package/frontend/dist/minecraft-assets/items/bamboo_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/bamboo_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/bamboo_raft.png +0 -0
- package/frontend/dist/minecraft-assets/items/bamboo_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/barrier.png +0 -0
- package/frontend/dist/minecraft-assets/items/beef.png +0 -0
- package/frontend/dist/minecraft-assets/items/beetroot.png +0 -0
- package/frontend/dist/minecraft-assets/items/beetroot_seeds.png +0 -0
- package/frontend/dist/minecraft-assets/items/beetroot_soup.png +0 -0
- package/frontend/dist/minecraft-assets/items/bell.png +0 -0
- package/frontend/dist/minecraft-assets/items/birch_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/birch_chest_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/birch_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/birch_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/birch_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/black_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/black_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/blade_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/blaze_powder.png +0 -0
- package/frontend/dist/minecraft-assets/items/blaze_rod.png +0 -0
- package/frontend/dist/minecraft-assets/items/blue_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/blue_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/bone.png +0 -0
- package/frontend/dist/minecraft-assets/items/bone_meal.png +0 -0
- package/frontend/dist/minecraft-assets/items/book.png +0 -0
- package/frontend/dist/minecraft-assets/items/bow.png +0 -0
- package/frontend/dist/minecraft-assets/items/bow_pulling_0.png +0 -0
- package/frontend/dist/minecraft-assets/items/bow_pulling_1.png +0 -0
- package/frontend/dist/minecraft-assets/items/bow_pulling_2.png +0 -0
- package/frontend/dist/minecraft-assets/items/bowl.png +0 -0
- package/frontend/dist/minecraft-assets/items/bread.png +0 -0
- package/frontend/dist/minecraft-assets/items/brewer_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/brewing_stand.png +0 -0
- package/frontend/dist/minecraft-assets/items/brick.png +0 -0
- package/frontend/dist/minecraft-assets/items/broken_elytra.png +0 -0
- package/frontend/dist/minecraft-assets/items/brown_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/brown_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/brush.png +0 -0
- package/frontend/dist/minecraft-assets/items/bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/bundle.png +0 -0
- package/frontend/dist/minecraft-assets/items/bundle_filled.png +0 -0
- package/frontend/dist/minecraft-assets/items/burn_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/cake.png +0 -0
- package/frontend/dist/minecraft-assets/items/campfire.png +0 -0
- package/frontend/dist/minecraft-assets/items/candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/carrot.png +0 -0
- package/frontend/dist/minecraft-assets/items/carrot_on_a_stick.png +0 -0
- package/frontend/dist/minecraft-assets/items/cauldron.png +0 -0
- package/frontend/dist/minecraft-assets/items/chain.png +0 -0
- package/frontend/dist/minecraft-assets/items/chainmail_boots.png +0 -0
- package/frontend/dist/minecraft-assets/items/chainmail_chestplate.png +0 -0
- package/frontend/dist/minecraft-assets/items/chainmail_helmet.png +0 -0
- package/frontend/dist/minecraft-assets/items/chainmail_leggings.png +0 -0
- package/frontend/dist/minecraft-assets/items/charcoal.png +0 -0
- package/frontend/dist/minecraft-assets/items/cherry_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/cherry_chest_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/cherry_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/cherry_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/cherry_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/chest_minecart.png +0 -0
- package/frontend/dist/minecraft-assets/items/chicken.png +0 -0
- package/frontend/dist/minecraft-assets/items/chorus_fruit.png +0 -0
- package/frontend/dist/minecraft-assets/items/clay_ball.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_00.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_01.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_02.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_03.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_04.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_05.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_06.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_07.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_08.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_09.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_10.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_11.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_12.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_13.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_14.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_15.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_16.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_17.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_18.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_19.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_20.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_21.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_22.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_23.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_24.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_25.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_26.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_27.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_28.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_29.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_30.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_31.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_32.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_33.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_34.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_35.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_36.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_37.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_38.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_39.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_40.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_41.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_42.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_43.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_44.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_45.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_46.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_47.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_48.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_49.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_50.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_51.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_52.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_53.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_54.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_55.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_56.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_57.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_58.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_59.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_60.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_61.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_62.png +0 -0
- package/frontend/dist/minecraft-assets/items/clock_63.png +0 -0
- package/frontend/dist/minecraft-assets/items/coal.png +0 -0
- package/frontend/dist/minecraft-assets/items/coast_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/cocoa_beans.png +0 -0
- package/frontend/dist/minecraft-assets/items/cod.png +0 -0
- package/frontend/dist/minecraft-assets/items/cod_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/command_block_minecart.png +0 -0
- package/frontend/dist/minecraft-assets/items/comparator.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_00.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_01.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_02.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_03.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_04.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_05.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_06.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_07.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_08.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_09.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_10.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_11.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_12.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_13.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_14.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_15.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_16.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_17.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_18.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_19.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_20.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_21.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_22.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_23.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_24.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_25.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_26.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_27.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_28.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_29.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_30.png +0 -0
- package/frontend/dist/minecraft-assets/items/compass_31.png +0 -0
- package/frontend/dist/minecraft-assets/items/cooked_beef.png +0 -0
- package/frontend/dist/minecraft-assets/items/cooked_chicken.png +0 -0
- package/frontend/dist/minecraft-assets/items/cooked_cod.png +0 -0
- package/frontend/dist/minecraft-assets/items/cooked_mutton.png +0 -0
- package/frontend/dist/minecraft-assets/items/cooked_porkchop.png +0 -0
- package/frontend/dist/minecraft-assets/items/cooked_rabbit.png +0 -0
- package/frontend/dist/minecraft-assets/items/cooked_salmon.png +0 -0
- package/frontend/dist/minecraft-assets/items/cookie.png +0 -0
- package/frontend/dist/minecraft-assets/items/copper_ingot.png +0 -0
- package/frontend/dist/minecraft-assets/items/creeper_banner_pattern.png +0 -0
- package/frontend/dist/minecraft-assets/items/crimson_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/crimson_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/crimson_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/crossbow_arrow.png +0 -0
- package/frontend/dist/minecraft-assets/items/crossbow_firework.png +0 -0
- package/frontend/dist/minecraft-assets/items/crossbow_pulling_0.png +0 -0
- package/frontend/dist/minecraft-assets/items/crossbow_pulling_1.png +0 -0
- package/frontend/dist/minecraft-assets/items/crossbow_pulling_2.png +0 -0
- package/frontend/dist/minecraft-assets/items/crossbow_standby.png +0 -0
- package/frontend/dist/minecraft-assets/items/cyan_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/cyan_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/danger_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/dark_oak_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/dark_oak_chest_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/dark_oak_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/dark_oak_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/dark_oak_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_axe.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_boots.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_chestplate.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_helmet.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_hoe.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_horse_armor.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_leggings.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_pickaxe.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_shovel.png +0 -0
- package/frontend/dist/minecraft-assets/items/diamond_sword.png +0 -0
- package/frontend/dist/minecraft-assets/items/disc_fragment_5.png +0 -0
- package/frontend/dist/minecraft-assets/items/dragon_breath.png +0 -0
- package/frontend/dist/minecraft-assets/items/dried_kelp.png +0 -0
- package/frontend/dist/minecraft-assets/items/dune_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/echo_shard.png +0 -0
- package/frontend/dist/minecraft-assets/items/egg.png +0 -0
- package/frontend/dist/minecraft-assets/items/elytra.png +0 -0
- package/frontend/dist/minecraft-assets/items/emerald.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_armor_slot_boots.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_armor_slot_chestplate.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_armor_slot_helmet.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_armor_slot_leggings.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_armor_slot_shield.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_amethyst_shard.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_axe.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_diamond.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_emerald.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_hoe.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_ingot.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_lapis_lazuli.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_pickaxe.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_quartz.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_redstone_dust.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_shovel.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_smithing_template_armor_trim.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_smithing_template_netherite_upgrade.png +0 -0
- package/frontend/dist/minecraft-assets/items/empty_slot_sword.png +0 -0
- package/frontend/dist/minecraft-assets/items/enchanted_book.png +0 -0
- package/frontend/dist/minecraft-assets/items/end_crystal.png +0 -0
- package/frontend/dist/minecraft-assets/items/ender_eye.png +0 -0
- package/frontend/dist/minecraft-assets/items/ender_pearl.png +0 -0
- package/frontend/dist/minecraft-assets/items/experience_bottle.png +0 -0
- package/frontend/dist/minecraft-assets/items/explorer_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/eye_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/feather.png +0 -0
- package/frontend/dist/minecraft-assets/items/fermented_spider_eye.png +0 -0
- package/frontend/dist/minecraft-assets/items/filled_map.png +0 -0
- package/frontend/dist/minecraft-assets/items/filled_map_markings.png +0 -0
- package/frontend/dist/minecraft-assets/items/fire_charge.png +0 -0
- package/frontend/dist/minecraft-assets/items/firework_rocket.png +0 -0
- package/frontend/dist/minecraft-assets/items/firework_star.png +0 -0
- package/frontend/dist/minecraft-assets/items/firework_star_overlay.png +0 -0
- package/frontend/dist/minecraft-assets/items/fishing_rod.png +0 -0
- package/frontend/dist/minecraft-assets/items/fishing_rod_cast.png +0 -0
- package/frontend/dist/minecraft-assets/items/flint.png +0 -0
- package/frontend/dist/minecraft-assets/items/flint_and_steel.png +0 -0
- package/frontend/dist/minecraft-assets/items/flower_banner_pattern.png +0 -0
- package/frontend/dist/minecraft-assets/items/flower_pot.png +0 -0
- package/frontend/dist/minecraft-assets/items/friend_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/furnace_minecart.png +0 -0
- package/frontend/dist/minecraft-assets/items/ghast_tear.png +0 -0
- package/frontend/dist/minecraft-assets/items/glass_bottle.png +0 -0
- package/frontend/dist/minecraft-assets/items/glistering_melon_slice.png +0 -0
- package/frontend/dist/minecraft-assets/items/globe_banner_pattern.png +0 -0
- package/frontend/dist/minecraft-assets/items/glow_berries.png +0 -0
- package/frontend/dist/minecraft-assets/items/glow_ink_sac.png +0 -0
- package/frontend/dist/minecraft-assets/items/glow_item_frame.png +0 -0
- package/frontend/dist/minecraft-assets/items/glowstone_dust.png +0 -0
- package/frontend/dist/minecraft-assets/items/goat_horn.png +0 -0
- package/frontend/dist/minecraft-assets/items/gold_ingot.png +0 -0
- package/frontend/dist/minecraft-assets/items/gold_nugget.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_apple.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_axe.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_boots.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_carrot.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_chestplate.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_helmet.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_hoe.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_horse_armor.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_leggings.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_pickaxe.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_shovel.png +0 -0
- package/frontend/dist/minecraft-assets/items/golden_sword.png +0 -0
- package/frontend/dist/minecraft-assets/items/gray_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/gray_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/green_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/green_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/gunpowder.png +0 -0
- package/frontend/dist/minecraft-assets/items/heart_of_the_sea.png +0 -0
- package/frontend/dist/minecraft-assets/items/heart_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/heartbreak_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/honey_bottle.png +0 -0
- package/frontend/dist/minecraft-assets/items/honeycomb.png +0 -0
- package/frontend/dist/minecraft-assets/items/hopper.png +0 -0
- package/frontend/dist/minecraft-assets/items/hopper_minecart.png +0 -0
- package/frontend/dist/minecraft-assets/items/host_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/howl_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/ink_sac.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_axe.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_boots.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_chestplate.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_helmet.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_hoe.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_horse_armor.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_ingot.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_leggings.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_nugget.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_pickaxe.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_shovel.png +0 -0
- package/frontend/dist/minecraft-assets/items/iron_sword.png +0 -0
- package/frontend/dist/minecraft-assets/items/item_frame.png +0 -0
- package/frontend/dist/minecraft-assets/items/jungle_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/jungle_chest_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/jungle_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/jungle_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/jungle_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/kelp.png +0 -0
- package/frontend/dist/minecraft-assets/items/knowledge_book.png +0 -0
- package/frontend/dist/minecraft-assets/items/lantern.png +0 -0
- package/frontend/dist/minecraft-assets/items/lapis_lazuli.png +0 -0
- package/frontend/dist/minecraft-assets/items/lava_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/lead.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_boots.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_boots_overlay.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_chestplate.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_chestplate_overlay.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_helmet.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_helmet_overlay.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_horse_armor.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_leggings.png +0 -0
- package/frontend/dist/minecraft-assets/items/leather_leggings_overlay.png +0 -0
- package/frontend/dist/minecraft-assets/items/light.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_00.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_01.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_02.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_03.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_04.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_05.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_06.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_07.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_08.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_09.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_10.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_11.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_12.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_13.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_14.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_15.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_blue_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_blue_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_gray_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/light_gray_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/lime_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/lime_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/lingering_potion.png +0 -0
- package/frontend/dist/minecraft-assets/items/magenta_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/magenta_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/magma_cream.png +0 -0
- package/frontend/dist/minecraft-assets/items/mangrove_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/mangrove_chest_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/mangrove_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/mangrove_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/mangrove_propagule.png +0 -0
- package/frontend/dist/minecraft-assets/items/mangrove_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/map.png +0 -0
- package/frontend/dist/minecraft-assets/items/melon_seeds.png +0 -0
- package/frontend/dist/minecraft-assets/items/melon_slice.png +0 -0
- package/frontend/dist/minecraft-assets/items/milk_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/minecart.png +0 -0
- package/frontend/dist/minecraft-assets/items/miner_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/mojang_banner_pattern.png +0 -0
- package/frontend/dist/minecraft-assets/items/mourner_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/mushroom_stew.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_11.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_13.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_5.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_blocks.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_cat.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_chirp.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_far.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_mall.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_mellohi.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_otherside.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_pigstep.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_relic.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_stal.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_strad.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_wait.png +0 -0
- package/frontend/dist/minecraft-assets/items/music_disc_ward.png +0 -0
- package/frontend/dist/minecraft-assets/items/mutton.png +0 -0
- package/frontend/dist/minecraft-assets/items/name_tag.png +0 -0
- package/frontend/dist/minecraft-assets/items/nautilus_shell.png +0 -0
- package/frontend/dist/minecraft-assets/items/nether_brick.png +0 -0
- package/frontend/dist/minecraft-assets/items/nether_sprouts.png +0 -0
- package/frontend/dist/minecraft-assets/items/nether_star.png +0 -0
- package/frontend/dist/minecraft-assets/items/nether_wart.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_axe.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_boots.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_chestplate.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_helmet.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_hoe.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_ingot.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_leggings.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_pickaxe.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_scrap.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_shovel.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_sword.png +0 -0
- package/frontend/dist/minecraft-assets/items/netherite_upgrade_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/oak_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/oak_chest_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/oak_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/oak_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/oak_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/orange_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/orange_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/painting.png +0 -0
- package/frontend/dist/minecraft-assets/items/paper.png +0 -0
- package/frontend/dist/minecraft-assets/items/phantom_membrane.png +0 -0
- package/frontend/dist/minecraft-assets/items/piglin_banner_pattern.png +0 -0
- package/frontend/dist/minecraft-assets/items/pink_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/pink_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/pink_petals.png +0 -0
- package/frontend/dist/minecraft-assets/items/pitcher_plant.png +0 -0
- package/frontend/dist/minecraft-assets/items/pitcher_pod.png +0 -0
- package/frontend/dist/minecraft-assets/items/plenty_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/pointed_dripstone.png +0 -0
- package/frontend/dist/minecraft-assets/items/poisonous_potato.png +0 -0
- package/frontend/dist/minecraft-assets/items/popped_chorus_fruit.png +0 -0
- package/frontend/dist/minecraft-assets/items/porkchop.png +0 -0
- package/frontend/dist/minecraft-assets/items/potato.png +0 -0
- package/frontend/dist/minecraft-assets/items/potion.png +0 -0
- package/frontend/dist/minecraft-assets/items/potion_overlay.png +0 -0
- package/frontend/dist/minecraft-assets/items/powder_snow_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/prismarine_crystals.png +0 -0
- package/frontend/dist/minecraft-assets/items/prismarine_shard.png +0 -0
- package/frontend/dist/minecraft-assets/items/prize_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/pufferfish.png +0 -0
- package/frontend/dist/minecraft-assets/items/pufferfish_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/pumpkin_pie.png +0 -0
- package/frontend/dist/minecraft-assets/items/pumpkin_seeds.png +0 -0
- package/frontend/dist/minecraft-assets/items/purple_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/purple_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/quartz.png +0 -0
- package/frontend/dist/minecraft-assets/items/rabbit.png +0 -0
- package/frontend/dist/minecraft-assets/items/rabbit_foot.png +0 -0
- package/frontend/dist/minecraft-assets/items/rabbit_hide.png +0 -0
- package/frontend/dist/minecraft-assets/items/rabbit_stew.png +0 -0
- package/frontend/dist/minecraft-assets/items/raiser_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/raw_copper.png +0 -0
- package/frontend/dist/minecraft-assets/items/raw_gold.png +0 -0
- package/frontend/dist/minecraft-assets/items/raw_iron.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_00.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_01.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_02.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_03.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_04.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_05.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_06.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_07.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_08.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_09.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_10.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_11.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_12.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_13.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_14.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_15.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_16.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_17.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_18.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_19.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_20.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_21.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_22.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_23.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_24.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_25.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_26.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_27.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_28.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_29.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_30.png +0 -0
- package/frontend/dist/minecraft-assets/items/recovery_compass_31.png +0 -0
- package/frontend/dist/minecraft-assets/items/red_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/red_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/redstone.png +0 -0
- package/frontend/dist/minecraft-assets/items/repeater.png +0 -0
- package/frontend/dist/minecraft-assets/items/rib_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/rotten_flesh.png +0 -0
- package/frontend/dist/minecraft-assets/items/saddle.png +0 -0
- package/frontend/dist/minecraft-assets/items/salmon.png +0 -0
- package/frontend/dist/minecraft-assets/items/salmon_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/scute.png +0 -0
- package/frontend/dist/minecraft-assets/items/sea_pickle.png +0 -0
- package/frontend/dist/minecraft-assets/items/seagrass.png +0 -0
- package/frontend/dist/minecraft-assets/items/sentry_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/shaper_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/sheaf_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/shears.png +0 -0
- package/frontend/dist/minecraft-assets/items/shelter_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/shulker_shell.png +0 -0
- package/frontend/dist/minecraft-assets/items/silence_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/skull_banner_pattern.png +0 -0
- package/frontend/dist/minecraft-assets/items/skull_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/slime_ball.png +0 -0
- package/frontend/dist/minecraft-assets/items/sniffer_egg.png +0 -0
- package/frontend/dist/minecraft-assets/items/snort_pottery_sherd.png +0 -0
- package/frontend/dist/minecraft-assets/items/snout_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/snowball.png +0 -0
- package/frontend/dist/minecraft-assets/items/soul_campfire.png +0 -0
- package/frontend/dist/minecraft-assets/items/soul_lantern.png +0 -0
- package/frontend/dist/minecraft-assets/items/spawn_egg.png +0 -0
- package/frontend/dist/minecraft-assets/items/spawn_egg_overlay.png +0 -0
- package/frontend/dist/minecraft-assets/items/spectral_arrow.png +0 -0
- package/frontend/dist/minecraft-assets/items/spider_eye.png +0 -0
- package/frontend/dist/minecraft-assets/items/spire_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/splash_potion.png +0 -0
- package/frontend/dist/minecraft-assets/items/spruce_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/spruce_chest_boat.png +0 -0
- package/frontend/dist/minecraft-assets/items/spruce_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/spruce_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/spruce_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/spyglass.png +0 -0
- package/frontend/dist/minecraft-assets/items/spyglass_model.png +0 -0
- package/frontend/dist/minecraft-assets/items/stick.png +0 -0
- package/frontend/dist/minecraft-assets/items/stone_axe.png +0 -0
- package/frontend/dist/minecraft-assets/items/stone_hoe.png +0 -0
- package/frontend/dist/minecraft-assets/items/stone_pickaxe.png +0 -0
- package/frontend/dist/minecraft-assets/items/stone_shovel.png +0 -0
- package/frontend/dist/minecraft-assets/items/stone_sword.png +0 -0
- package/frontend/dist/minecraft-assets/items/string.png +0 -0
- package/frontend/dist/minecraft-assets/items/structure_void.png +0 -0
- package/frontend/dist/minecraft-assets/items/sugar.png +0 -0
- package/frontend/dist/minecraft-assets/items/sugar_cane.png +0 -0
- package/frontend/dist/minecraft-assets/items/suspicious_stew.png +0 -0
- package/frontend/dist/minecraft-assets/items/sweet_berries.png +0 -0
- package/frontend/dist/minecraft-assets/items/tadpole_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/tide_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/tipped_arrow_base.png +0 -0
- package/frontend/dist/minecraft-assets/items/tipped_arrow_head.png +0 -0
- package/frontend/dist/minecraft-assets/items/tnt_minecart.png +0 -0
- package/frontend/dist/minecraft-assets/items/torchflower_seeds.png +0 -0
- package/frontend/dist/minecraft-assets/items/totem_of_undying.png +0 -0
- package/frontend/dist/minecraft-assets/items/trident.png +0 -0
- package/frontend/dist/minecraft-assets/items/tropical_fish.png +0 -0
- package/frontend/dist/minecraft-assets/items/tropical_fish_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/turtle_egg.png +0 -0
- package/frontend/dist/minecraft-assets/items/turtle_helmet.png +0 -0
- package/frontend/dist/minecraft-assets/items/vex_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/ward_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/warped_door.png +0 -0
- package/frontend/dist/minecraft-assets/items/warped_fungus_on_a_stick.png +0 -0
- package/frontend/dist/minecraft-assets/items/warped_hanging_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/warped_sign.png +0 -0
- package/frontend/dist/minecraft-assets/items/water_bucket.png +0 -0
- package/frontend/dist/minecraft-assets/items/wayfinder_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/wheat.png +0 -0
- package/frontend/dist/minecraft-assets/items/wheat_seeds.png +0 -0
- package/frontend/dist/minecraft-assets/items/white_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/white_dye.png +0 -0
- package/frontend/dist/minecraft-assets/items/wild_armor_trim_smithing_template.png +0 -0
- package/frontend/dist/minecraft-assets/items/wooden_axe.png +0 -0
- package/frontend/dist/minecraft-assets/items/wooden_hoe.png +0 -0
- package/frontend/dist/minecraft-assets/items/wooden_pickaxe.png +0 -0
- package/frontend/dist/minecraft-assets/items/wooden_shovel.png +0 -0
- package/frontend/dist/minecraft-assets/items/wooden_sword.png +0 -0
- package/frontend/dist/minecraft-assets/items/writable_book.png +0 -0
- package/frontend/dist/minecraft-assets/items/written_book.png +0 -0
- package/frontend/dist/minecraft-assets/items/yellow_candle.png +0 -0
- package/frontend/dist/minecraft-assets/items/yellow_dye.png +0 -0
- package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
- package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
- package/frontend/package.json +4 -0
- package/package.json +1 -1
- package/screen/3dviewer.png +0 -0
- package/screen/console.png +0 -0
- package/screen/language_selector.png +0 -0
- package/.claude/agents/README.md +0 -469
- package/.claude/agents/auth-route-debugger.md +0 -118
- package/.claude/agents/auth-route-tester.md +0 -93
- package/.claude/agents/auto-error-resolver.md +0 -97
- package/.claude/agents/build-optimizer.md +0 -236
- package/.claude/agents/code-architect.md +0 -34
- package/.claude/agents/code-architecture-reviewer.md +0 -83
- package/.claude/agents/code-explorer.md +0 -51
- package/.claude/agents/code-refactor-master.md +0 -94
- package/.claude/agents/code-reviewer.md +0 -46
- package/.claude/agents/cost-optimizer.md +0 -134
- package/.claude/agents/deployment-orchestrator.md +0 -113
- package/.claude/agents/documentation-architect.md +0 -82
- package/.claude/agents/frontend-error-fixer.md +0 -77
- package/.claude/agents/iac-code-generator.md +0 -71
- package/.claude/agents/incident-responder.md +0 -346
- package/.claude/agents/infrastructure-architect.md +0 -31
- package/.claude/agents/kubernetes-specialist.md +0 -56
- package/.claude/agents/migration-planner.md +0 -181
- package/.claude/agents/network-architect.md +0 -196
- package/.claude/agents/plan-reviewer.md +0 -52
- package/.claude/agents/refactor-planner.md +0 -63
- package/.claude/agents/security-scanner.md +0 -102
- package/.claude/agents/web-research-specialist.md +0 -78
- package/.claude/commands/cost-analysis.md +0 -315
- package/.claude/commands/dev-docs-update.md +0 -55
- package/.claude/commands/dev-docs.md +0 -51
- package/.claude/commands/feature-dev.md +0 -125
- package/.claude/commands/incident-debug.md +0 -247
- package/.claude/commands/infra-plan.md +0 -81
- package/.claude/commands/migration-plan.md +0 -478
- package/.claude/commands/route-research-for-testing.md +0 -37
- package/.claude/commands/security-review.md +0 -66
- package/.claude/hooks/CONFIG.md +0 -448
- package/.claude/hooks/README.md +0 -163
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
- package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
- package/.claude/hooks/add-skill-activation-banners.ts +0 -132
- package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -222
- package/.claude/hooks/k8s-manifest-validator.sh +0 -56
- package/.claude/hooks/package-lock.json +0 -556
- package/.claude/hooks/package.json +0 -16
- package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
- package/.claude/hooks/post-tool-use-tracker.sh +0 -183
- package/.claude/hooks/security-policy-check.sh +0 -247
- package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
- package/.claude/hooks/skill-activation-prompt.sh +0 -10
- package/.claude/hooks/skill-activation-prompt.ts +0 -141
- package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
- package/.claude/hooks/terraform-validator.sh +0 -53
- package/.claude/hooks/test-input.json +0 -7
- package/.claude/hooks/test-skill-activation.ts +0 -427
- package/.claude/hooks/trigger-build-resolver.sh +0 -79
- package/.claude/hooks/tsc-check.sh +0 -173
- package/.claude/hooks/tsconfig.json +0 -19
- package/.claude/settings.json +0 -59
- package/.claude/settings.local.json +0 -47
- package/.claude/skills/README.md +0 -507
- package/.claude/skills/api-engineering/SKILL.md +0 -63
- package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
- package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
- package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
- package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
- package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
- package/.claude/skills/build-engineering/SKILL.md +0 -431
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
- package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
- package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
- package/.claude/skills/build-engineering/resources/build-security.md +0 -95
- package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
- package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
- package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
- package/.claude/skills/cloud-engineering/SKILL.md +0 -675
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
- package/.claude/skills/cybersecurity/SKILL.md +0 -409
- package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
- package/.claude/skills/database-engineering/SKILL.md +0 -61
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
- package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
- package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
- package/.claude/skills/devsecops/SKILL.md +0 -374
- package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
- package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
- package/.claude/skills/devsecops/resources/container-security.md +0 -915
- package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
- package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
- package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
- package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
- package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
- package/.claude/skills/devsecops/resources/security-testing.md +0 -203
- package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
- package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
- package/.claude/skills/documentation-as-code/SKILL.md +0 -323
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
- package/.claude/skills/engineering-management/SKILL.md +0 -356
- package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
- package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
- package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
- package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
- package/.claude/skills/error-tracking/SKILL.md +0 -379
- package/.claude/skills/frontend-design/SKILL.md +0 -42
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
- package/.claude/skills/general-it-engineering/SKILL.md +0 -393
- package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
- package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
- package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
- package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
- package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
- package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
- package/.claude/skills/network-engineering/SKILL.md +0 -385
- package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
- package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
- package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
- package/.claude/skills/network-engineering/resources/network-security.md +0 -921
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
- package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
- package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
- package/.claude/skills/observability-engineering/SKILL.md +0 -101
- package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
- package/.claude/skills/platform-engineering/SKILL.md +0 -555
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
- package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
- package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
- package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
- package/.claude/skills/release-engineering/SKILL.md +0 -393
- package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
- package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
- package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
- package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
- package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
- package/.claude/skills/route-tester/SKILL.md +0 -392
- package/.claude/skills/skill-developer/ADVANCED.md +0 -197
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
- package/.claude/skills/skill-developer/SKILL.md +0 -430
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
- package/.claude/skills/skill-rules.json +0 -2940
- package/.claude/skills/sre/SKILL.md +0 -464
- package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
- package/.claude/skills/sre/resources/capacity-planning.md +0 -226
- package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
- package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
- package/.claude/skills/sre/resources/incident-management.md +0 -436
- package/.claude/skills/sre/resources/observability-stack.md +0 -240
- package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
- package/.claude/skills/sre/resources/performance-optimization.md +0 -108
- package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
- package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
- package/.claude/skills/sre/resources/toil-reduction.md +0 -145
- package/.claude/skills/systems-engineering/SKILL.md +0 -648
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
- package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
- package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
- package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
- package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
- package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
- package/.claude/skills/technical-leadership/SKILL.md +0 -728
- package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
- package/frontend/dist/assets/index-DqzDkFsP.js +0 -11210
- package/frontend/dist/assets/index-t6K1u4OV.css +0 -32
|
@@ -1,982 +0,0 @@
|
|
|
1
|
-
# Networking Fundamentals
|
|
2
|
-
|
|
3
|
-
Comprehensive guide to Linux networking covering TCP/IP stack, DNS, load balancers, firewalls, routing, VPN, and network debugging tools for systems engineers.
|
|
4
|
-
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [TCP/IP Stack Overview](#tcpip-stack-overview)
|
|
8
|
-
- [Network Configuration](#network-configuration)
|
|
9
|
-
- [DNS Configuration](#dns-configuration)
|
|
10
|
-
- [Firewall Management](#firewall-management)
|
|
11
|
-
- [Routing and Bridging](#routing-and-bridging)
|
|
12
|
-
- [Load Balancers](#load-balancers)
|
|
13
|
-
- [VPN Configuration](#vpn-configuration)
|
|
14
|
-
- [Network Debugging Tools](#network-debugging-tools)
|
|
15
|
-
- [Network Performance Tuning](#network-performance-tuning)
|
|
16
|
-
- [Best Practices](#best-practices)
|
|
17
|
-
- [Anti-Patterns](#anti-patterns)
|
|
18
|
-
- [Common Issues](#common-issues)
|
|
19
|
-
|
|
20
|
-
## TCP/IP Stack Overview
|
|
21
|
-
|
|
22
|
-
### Understanding the Layers
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
┌─────────────────────────────────────────┐
|
|
26
|
-
│ Application Layer (HTTP, SSH, DNS) │
|
|
27
|
-
├─────────────────────────────────────────┤
|
|
28
|
-
│ Transport Layer (TCP, UDP) │
|
|
29
|
-
├─────────────────────────────────────────┤
|
|
30
|
-
│ Network Layer (IP, ICMP) │
|
|
31
|
-
├─────────────────────────────────────────┤
|
|
32
|
-
│ Link Layer (Ethernet, WiFi) │
|
|
33
|
-
└─────────────────────────────────────────┘
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Network Namespaces
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
# Create network namespace
|
|
40
|
-
sudo ip netns add testns
|
|
41
|
-
|
|
42
|
-
# List namespaces
|
|
43
|
-
sudo ip netns list
|
|
44
|
-
|
|
45
|
-
# Execute command in namespace
|
|
46
|
-
sudo ip netns exec testns ip addr
|
|
47
|
-
|
|
48
|
-
# Create veth pair (virtual ethernet)
|
|
49
|
-
sudo ip link add veth0 type veth peer name veth1
|
|
50
|
-
|
|
51
|
-
# Move one end to namespace
|
|
52
|
-
sudo ip link set veth1 netns testns
|
|
53
|
-
|
|
54
|
-
# Configure interfaces
|
|
55
|
-
sudo ip addr add 10.0.0.1/24 dev veth0
|
|
56
|
-
sudo ip link set veth0 up
|
|
57
|
-
|
|
58
|
-
sudo ip netns exec testns ip addr add 10.0.0.2/24 dev veth1
|
|
59
|
-
sudo ip netns exec testns ip link set veth1 up
|
|
60
|
-
|
|
61
|
-
# Test connectivity
|
|
62
|
-
ping 10.0.0.2
|
|
63
|
-
|
|
64
|
-
# Delete namespace
|
|
65
|
-
sudo ip netns delete testns
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## Network Configuration
|
|
69
|
-
|
|
70
|
-
### Modern Network Management (ip command)
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# View all interfaces
|
|
74
|
-
ip addr show
|
|
75
|
-
ip link show
|
|
76
|
-
|
|
77
|
-
# View specific interface
|
|
78
|
-
ip addr show eth0
|
|
79
|
-
|
|
80
|
-
# Add IP address
|
|
81
|
-
sudo ip addr add 192.168.1.100/24 dev eth0
|
|
82
|
-
|
|
83
|
-
# Remove IP address
|
|
84
|
-
sudo ip addr del 192.168.1.100/24 dev eth0
|
|
85
|
-
|
|
86
|
-
# Bring interface up/down
|
|
87
|
-
sudo ip link set eth0 up
|
|
88
|
-
sudo ip link set eth0 down
|
|
89
|
-
|
|
90
|
-
# Set MTU
|
|
91
|
-
sudo ip link set eth0 mtu 9000
|
|
92
|
-
|
|
93
|
-
# View routing table
|
|
94
|
-
ip route show
|
|
95
|
-
|
|
96
|
-
# Add default route
|
|
97
|
-
sudo ip route add default via 192.168.1.1
|
|
98
|
-
|
|
99
|
-
# Add specific route
|
|
100
|
-
sudo ip route add 10.0.0.0/8 via 192.168.1.254
|
|
101
|
-
|
|
102
|
-
# Delete route
|
|
103
|
-
sudo ip route del 10.0.0.0/8
|
|
104
|
-
|
|
105
|
-
# View ARP table
|
|
106
|
-
ip neigh show
|
|
107
|
-
|
|
108
|
-
# Flush ARP cache
|
|
109
|
-
sudo ip neigh flush all
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Netplan Configuration (Ubuntu 18.04+)
|
|
113
|
-
|
|
114
|
-
```yaml
|
|
115
|
-
# /etc/netplan/01-network-config.yaml
|
|
116
|
-
network:
|
|
117
|
-
version: 2
|
|
118
|
-
renderer: networkd
|
|
119
|
-
|
|
120
|
-
ethernets:
|
|
121
|
-
eth0:
|
|
122
|
-
dhcp4: false
|
|
123
|
-
addresses:
|
|
124
|
-
- 192.168.1.100/24
|
|
125
|
-
gateway4: 192.168.1.1
|
|
126
|
-
nameservers:
|
|
127
|
-
addresses:
|
|
128
|
-
- 8.8.8.8
|
|
129
|
-
- 8.8.4.4
|
|
130
|
-
search:
|
|
131
|
-
- example.com
|
|
132
|
-
routes:
|
|
133
|
-
- to: 10.0.0.0/8
|
|
134
|
-
via: 192.168.1.254
|
|
135
|
-
|
|
136
|
-
eth1:
|
|
137
|
-
dhcp4: true
|
|
138
|
-
|
|
139
|
-
bonds:
|
|
140
|
-
bond0:
|
|
141
|
-
interfaces:
|
|
142
|
-
- eth2
|
|
143
|
-
- eth3
|
|
144
|
-
parameters:
|
|
145
|
-
mode: 802.3ad
|
|
146
|
-
lacp-rate: fast
|
|
147
|
-
mii-monitor-interval: 100
|
|
148
|
-
addresses:
|
|
149
|
-
- 10.0.1.10/24
|
|
150
|
-
|
|
151
|
-
vlans:
|
|
152
|
-
vlan100:
|
|
153
|
-
id: 100
|
|
154
|
-
link: eth0
|
|
155
|
-
addresses:
|
|
156
|
-
- 192.168.100.10/24
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
# Apply netplan configuration
|
|
161
|
-
sudo netplan try # Test with 120s rollback
|
|
162
|
-
sudo netplan apply # Apply permanently
|
|
163
|
-
|
|
164
|
-
# Generate configuration
|
|
165
|
-
sudo netplan generate
|
|
166
|
-
|
|
167
|
-
# Debug mode
|
|
168
|
-
sudo netplan --debug apply
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Legacy Network Configuration (ifupdown)
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
# /etc/network/interfaces
|
|
175
|
-
auto lo
|
|
176
|
-
iface lo inet loopback
|
|
177
|
-
|
|
178
|
-
auto eth0
|
|
179
|
-
iface eth0 inet static
|
|
180
|
-
address 192.168.1.100
|
|
181
|
-
netmask 255.255.255.0
|
|
182
|
-
gateway 192.168.1.1
|
|
183
|
-
dns-nameservers 8.8.8.8 8.8.4.4
|
|
184
|
-
dns-search example.com
|
|
185
|
-
|
|
186
|
-
# On boot commands
|
|
187
|
-
up ip route add 10.0.0.0/8 via 192.168.1.254
|
|
188
|
-
down ip route del 10.0.0.0/8
|
|
189
|
-
|
|
190
|
-
# Restart networking
|
|
191
|
-
sudo systemctl restart networking
|
|
192
|
-
sudo ifdown eth0 && sudo ifup eth0
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
## DNS Configuration
|
|
196
|
-
|
|
197
|
-
### systemd-resolved (Modern)
|
|
198
|
-
|
|
199
|
-
```bash
|
|
200
|
-
# Check DNS status
|
|
201
|
-
resolvectl status
|
|
202
|
-
|
|
203
|
-
# Query DNS
|
|
204
|
-
resolvectl query example.com
|
|
205
|
-
|
|
206
|
-
# Flush DNS cache
|
|
207
|
-
sudo resolvectl flush-caches
|
|
208
|
-
|
|
209
|
-
# View statistics
|
|
210
|
-
resolvectl statistics
|
|
211
|
-
|
|
212
|
-
# Configuration
|
|
213
|
-
cat /etc/systemd/resolved.conf
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
**systemd-resolved Configuration:**
|
|
217
|
-
```ini
|
|
218
|
-
# /etc/systemd/resolved.conf
|
|
219
|
-
[Resolve]
|
|
220
|
-
DNS=8.8.8.8 1.1.1.1
|
|
221
|
-
FallbackDNS=8.8.4.4 1.0.0.1
|
|
222
|
-
Domains=~.
|
|
223
|
-
DNSSEC=allow-downgrade
|
|
224
|
-
DNSOverTLS=opportunistic
|
|
225
|
-
Cache=yes
|
|
226
|
-
CacheFromLocalhost=no
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
# Restart resolver
|
|
231
|
-
sudo systemctl restart systemd-resolved
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### Traditional DNS Configuration
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
# /etc/resolv.conf
|
|
238
|
-
nameserver 8.8.8.8
|
|
239
|
-
nameserver 8.8.4.4
|
|
240
|
-
search example.com internal.example.com
|
|
241
|
-
options timeout:2 attempts:3 rotate
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
### Local DNS with dnsmasq
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
# Install dnsmasq
|
|
248
|
-
sudo apt install dnsmasq
|
|
249
|
-
|
|
250
|
-
# Configuration
|
|
251
|
-
# /etc/dnsmasq.conf
|
|
252
|
-
domain-needed
|
|
253
|
-
bogus-priv
|
|
254
|
-
no-resolv
|
|
255
|
-
no-poll
|
|
256
|
-
server=8.8.8.8
|
|
257
|
-
server=8.8.4.4
|
|
258
|
-
cache-size=1000
|
|
259
|
-
|
|
260
|
-
# Local domain
|
|
261
|
-
local=/home.lan/
|
|
262
|
-
domain=home.lan
|
|
263
|
-
|
|
264
|
-
# Static hosts
|
|
265
|
-
address=/router.home.lan/192.168.1.1
|
|
266
|
-
address=/server.home.lan/192.168.1.10
|
|
267
|
-
|
|
268
|
-
# DHCP (if needed)
|
|
269
|
-
dhcp-range=192.168.1.100,192.168.1.200,12h
|
|
270
|
-
dhcp-option=option:router,192.168.1.1
|
|
271
|
-
dhcp-option=option:dns-server,192.168.1.1
|
|
272
|
-
|
|
273
|
-
# Restart dnsmasq
|
|
274
|
-
sudo systemctl restart dnsmasq
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
## Firewall Management
|
|
278
|
-
|
|
279
|
-
### iptables
|
|
280
|
-
|
|
281
|
-
**Basic Concepts:**
|
|
282
|
-
```bash
|
|
283
|
-
# Tables: filter (default), nat, mangle, raw
|
|
284
|
-
# Chains: INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
**View Rules:**
|
|
288
|
-
```bash
|
|
289
|
-
# List all rules
|
|
290
|
-
sudo iptables -L -v -n
|
|
291
|
-
|
|
292
|
-
# List with line numbers
|
|
293
|
-
sudo iptables -L -v -n --line-numbers
|
|
294
|
-
|
|
295
|
-
# List specific chain
|
|
296
|
-
sudo iptables -L INPUT -v -n
|
|
297
|
-
|
|
298
|
-
# List NAT rules
|
|
299
|
-
sudo iptables -t nat -L -v -n
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
**Basic Rules:**
|
|
303
|
-
```bash
|
|
304
|
-
# Default policies
|
|
305
|
-
sudo iptables -P INPUT DROP
|
|
306
|
-
sudo iptables -P FORWARD DROP
|
|
307
|
-
sudo iptables -P OUTPUT ACCEPT
|
|
308
|
-
|
|
309
|
-
# Allow loopback
|
|
310
|
-
sudo iptables -A INPUT -i lo -j ACCEPT
|
|
311
|
-
sudo iptables -A OUTPUT -o lo -j ACCEPT
|
|
312
|
-
|
|
313
|
-
# Allow established connections
|
|
314
|
-
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
|
|
315
|
-
|
|
316
|
-
# Allow SSH
|
|
317
|
-
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
|
|
318
|
-
|
|
319
|
-
# Allow HTTP/HTTPS
|
|
320
|
-
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
|
|
321
|
-
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
|
|
322
|
-
|
|
323
|
-
# Allow from specific IP
|
|
324
|
-
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
|
|
325
|
-
|
|
326
|
-
# Rate limiting (prevent brute force)
|
|
327
|
-
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
|
|
328
|
-
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
|
|
329
|
-
|
|
330
|
-
# Delete rule by number
|
|
331
|
-
sudo iptables -D INPUT 5
|
|
332
|
-
|
|
333
|
-
# Insert rule at position
|
|
334
|
-
sudo iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
**NAT Configuration:**
|
|
338
|
-
```bash
|
|
339
|
-
# Enable IP forwarding
|
|
340
|
-
sudo sysctl -w net.ipv4.ip_forward=1
|
|
341
|
-
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
|
|
342
|
-
|
|
343
|
-
# Source NAT (SNAT) / Masquerade
|
|
344
|
-
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
|
345
|
-
|
|
346
|
-
# Destination NAT (DNAT) / Port Forwarding
|
|
347
|
-
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
|
|
348
|
-
|
|
349
|
-
# Save rules
|
|
350
|
-
sudo iptables-save > /etc/iptables/rules.v4
|
|
351
|
-
# Or using iptables-persistent
|
|
352
|
-
sudo apt install iptables-persistent
|
|
353
|
-
sudo netfilter-persistent save
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
### firewalld (RHEL/CentOS/Fedora)
|
|
357
|
-
|
|
358
|
-
```bash
|
|
359
|
-
# Check status
|
|
360
|
-
sudo firewall-cmd --state
|
|
361
|
-
sudo systemctl status firewalld
|
|
362
|
-
|
|
363
|
-
# List zones
|
|
364
|
-
sudo firewall-cmd --get-zones
|
|
365
|
-
sudo firewall-cmd --get-active-zones
|
|
366
|
-
sudo firewall-cmd --get-default-zone
|
|
367
|
-
|
|
368
|
-
# List all configuration
|
|
369
|
-
sudo firewall-cmd --list-all
|
|
370
|
-
|
|
371
|
-
# Add service
|
|
372
|
-
sudo firewall-cmd --add-service=http
|
|
373
|
-
sudo firewall-cmd --add-service=https
|
|
374
|
-
sudo firewall-cmd --runtime-to-permanent # Make persistent
|
|
375
|
-
|
|
376
|
-
# Add port
|
|
377
|
-
sudo firewall-cmd --add-port=8080/tcp
|
|
378
|
-
sudo firewall-cmd --add-port=8080/tcp --permanent
|
|
379
|
-
|
|
380
|
-
# Add rich rule
|
|
381
|
-
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept' --permanent
|
|
382
|
-
|
|
383
|
-
# Port forwarding
|
|
384
|
-
sudo firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100 --permanent
|
|
385
|
-
|
|
386
|
-
# Reload firewall
|
|
387
|
-
sudo firewall-cmd --reload
|
|
388
|
-
|
|
389
|
-
# Create custom zone
|
|
390
|
-
sudo firewall-cmd --permanent --new-zone=custom
|
|
391
|
-
sudo firewall-cmd --reload
|
|
392
|
-
sudo firewall-cmd --zone=custom --add-service=ssh --permanent
|
|
393
|
-
```
|
|
394
|
-
|
|
395
|
-
### nftables (Modern Replacement)
|
|
396
|
-
|
|
397
|
-
```bash
|
|
398
|
-
# Install nftables
|
|
399
|
-
sudo apt install nftables
|
|
400
|
-
|
|
401
|
-
# Basic configuration
|
|
402
|
-
# /etc/nftables.conf
|
|
403
|
-
#!/usr/sbin/nft -f
|
|
404
|
-
|
|
405
|
-
flush ruleset
|
|
406
|
-
|
|
407
|
-
table inet filter {
|
|
408
|
-
chain input {
|
|
409
|
-
type filter hook input priority 0; policy drop;
|
|
410
|
-
|
|
411
|
-
# Allow loopback
|
|
412
|
-
iif lo accept
|
|
413
|
-
|
|
414
|
-
# Allow established connections
|
|
415
|
-
ct state established,related accept
|
|
416
|
-
|
|
417
|
-
# Allow SSH
|
|
418
|
-
tcp dport 22 accept
|
|
419
|
-
|
|
420
|
-
# Allow HTTP/HTTPS
|
|
421
|
-
tcp dport { 80, 443 } accept
|
|
422
|
-
|
|
423
|
-
# Rate limit SSH
|
|
424
|
-
tcp dport 22 ct state new limit rate 4/minute accept
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
chain forward {
|
|
428
|
-
type filter hook forward priority 0; policy drop;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
chain output {
|
|
432
|
-
type filter hook output priority 0; policy accept;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
# NAT table
|
|
437
|
-
table inet nat {
|
|
438
|
-
chain postrouting {
|
|
439
|
-
type nat hook postrouting priority 100;
|
|
440
|
-
oifname "eth0" masquerade
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
# Enable nftables
|
|
445
|
-
sudo systemctl enable nftables
|
|
446
|
-
sudo systemctl start nftables
|
|
447
|
-
|
|
448
|
-
# List rules
|
|
449
|
-
sudo nft list ruleset
|
|
450
|
-
|
|
451
|
-
# Reload configuration
|
|
452
|
-
sudo nft -f /etc/nftables.conf
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
## Routing and Bridging
|
|
456
|
-
|
|
457
|
-
### Static Routing
|
|
458
|
-
|
|
459
|
-
```bash
|
|
460
|
-
# Add persistent route (via netplan on Ubuntu)
|
|
461
|
-
# See netplan configuration above
|
|
462
|
-
|
|
463
|
-
# Temporary route
|
|
464
|
-
sudo ip route add 10.20.0.0/16 via 192.168.1.254
|
|
465
|
-
|
|
466
|
-
# Multiple paths (load balancing)
|
|
467
|
-
sudo ip route add default \
|
|
468
|
-
nexthop via 192.168.1.1 weight 1 \
|
|
469
|
-
nexthop via 192.168.2.1 weight 1
|
|
470
|
-
|
|
471
|
-
# Policy-based routing
|
|
472
|
-
sudo ip rule add from 192.168.1.0/24 table 100
|
|
473
|
-
sudo ip route add default via 192.168.1.1 table 100
|
|
474
|
-
```
|
|
475
|
-
|
|
476
|
-
### Network Bridging
|
|
477
|
-
|
|
478
|
-
```bash
|
|
479
|
-
# Create bridge
|
|
480
|
-
sudo ip link add br0 type bridge
|
|
481
|
-
|
|
482
|
-
# Add interfaces to bridge
|
|
483
|
-
sudo ip link set eth0 master br0
|
|
484
|
-
sudo ip link set eth1 master br0
|
|
485
|
-
|
|
486
|
-
# Configure bridge
|
|
487
|
-
sudo ip addr add 192.168.1.10/24 dev br0
|
|
488
|
-
sudo ip link set br0 up
|
|
489
|
-
|
|
490
|
-
# Using netplan
|
|
491
|
-
network:
|
|
492
|
-
version: 2
|
|
493
|
-
ethernets:
|
|
494
|
-
eth0:
|
|
495
|
-
dhcp4: false
|
|
496
|
-
eth1:
|
|
497
|
-
dhcp4: false
|
|
498
|
-
|
|
499
|
-
bridges:
|
|
500
|
-
br0:
|
|
501
|
-
interfaces:
|
|
502
|
-
- eth0
|
|
503
|
-
- eth1
|
|
504
|
-
dhcp4: false
|
|
505
|
-
addresses:
|
|
506
|
-
- 192.168.1.10/24
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
## Load Balancers
|
|
510
|
-
|
|
511
|
-
### HAProxy
|
|
512
|
-
|
|
513
|
-
**Installation:**
|
|
514
|
-
```bash
|
|
515
|
-
sudo apt install haproxy
|
|
516
|
-
```
|
|
517
|
-
|
|
518
|
-
**Configuration:**
|
|
519
|
-
```bash
|
|
520
|
-
# /etc/haproxy/haproxy.cfg
|
|
521
|
-
global
|
|
522
|
-
log /dev/log local0
|
|
523
|
-
log /dev/log local1 notice
|
|
524
|
-
chroot /var/lib/haproxy
|
|
525
|
-
stats socket /run/haproxy/admin.sock mode 660 level admin
|
|
526
|
-
stats timeout 30s
|
|
527
|
-
user haproxy
|
|
528
|
-
group haproxy
|
|
529
|
-
daemon
|
|
530
|
-
maxconn 4096
|
|
531
|
-
|
|
532
|
-
defaults
|
|
533
|
-
log global
|
|
534
|
-
mode http
|
|
535
|
-
option httplog
|
|
536
|
-
option dontlognull
|
|
537
|
-
option http-server-close
|
|
538
|
-
option redispatch
|
|
539
|
-
retries 3
|
|
540
|
-
timeout connect 5000
|
|
541
|
-
timeout client 50000
|
|
542
|
-
timeout server 50000
|
|
543
|
-
errorfile 400 /etc/haproxy/errors/400.http
|
|
544
|
-
errorfile 403 /etc/haproxy/errors/403.http
|
|
545
|
-
errorfile 408 /etc/haproxy/errors/408.http
|
|
546
|
-
errorfile 500 /etc/haproxy/errors/500.http
|
|
547
|
-
errorfile 502 /etc/haproxy/errors/502.http
|
|
548
|
-
errorfile 503 /etc/haproxy/errors/503.http
|
|
549
|
-
errorfile 504 /etc/haproxy/errors/504.http
|
|
550
|
-
|
|
551
|
-
# Stats interface
|
|
552
|
-
listen stats
|
|
553
|
-
bind *:8404
|
|
554
|
-
stats enable
|
|
555
|
-
stats uri /stats
|
|
556
|
-
stats refresh 30s
|
|
557
|
-
stats auth admin:password
|
|
558
|
-
|
|
559
|
-
# Frontend
|
|
560
|
-
frontend http_front
|
|
561
|
-
bind *:80
|
|
562
|
-
bind *:443 ssl crt /etc/haproxy/certs/
|
|
563
|
-
|
|
564
|
-
# Redirect HTTP to HTTPS
|
|
565
|
-
redirect scheme https code 301 if !{ ssl_fc }
|
|
566
|
-
|
|
567
|
-
# ACLs
|
|
568
|
-
acl is_api path_beg /api
|
|
569
|
-
acl is_static path_beg /static
|
|
570
|
-
|
|
571
|
-
# Use backends
|
|
572
|
-
use_backend api_back if is_api
|
|
573
|
-
use_backend static_back if is_static
|
|
574
|
-
default_backend web_back
|
|
575
|
-
|
|
576
|
-
# Backend - Web servers
|
|
577
|
-
backend web_back
|
|
578
|
-
balance roundrobin
|
|
579
|
-
option httpchk GET /health
|
|
580
|
-
http-check expect status 200
|
|
581
|
-
|
|
582
|
-
server web1 192.168.1.101:8080 check
|
|
583
|
-
server web2 192.168.1.102:8080 check
|
|
584
|
-
server web3 192.168.1.103:8080 check backup
|
|
585
|
-
|
|
586
|
-
# Backend - API servers
|
|
587
|
-
backend api_back
|
|
588
|
-
balance leastconn
|
|
589
|
-
option httpchk GET /api/health
|
|
590
|
-
|
|
591
|
-
server api1 192.168.1.111:3000 check
|
|
592
|
-
server api2 192.168.1.112:3000 check
|
|
593
|
-
|
|
594
|
-
# Backend - Static content
|
|
595
|
-
backend static_back
|
|
596
|
-
balance source
|
|
597
|
-
server static1 192.168.1.121:80 check
|
|
598
|
-
```
|
|
599
|
-
|
|
600
|
-
```bash
|
|
601
|
-
# Test configuration
|
|
602
|
-
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
|
|
603
|
-
|
|
604
|
-
# Restart HAProxy
|
|
605
|
-
sudo systemctl restart haproxy
|
|
606
|
-
|
|
607
|
-
# View stats
|
|
608
|
-
curl http://localhost:8404/stats
|
|
609
|
-
```
|
|
610
|
-
|
|
611
|
-
### nginx Load Balancer
|
|
612
|
-
|
|
613
|
-
```nginx
|
|
614
|
-
# /etc/nginx/nginx.conf
|
|
615
|
-
http {
|
|
616
|
-
upstream web_backend {
|
|
617
|
-
least_conn; # or: ip_hash, round_robin (default)
|
|
618
|
-
|
|
619
|
-
server 192.168.1.101:8080 weight=3;
|
|
620
|
-
server 192.168.1.102:8080 weight=2;
|
|
621
|
-
server 192.168.1.103:8080 backup;
|
|
622
|
-
|
|
623
|
-
# Health checks (nginx Plus)
|
|
624
|
-
# health_check interval=5s fails=3 passes=2;
|
|
625
|
-
}
|
|
626
|
-
|
|
627
|
-
upstream api_backend {
|
|
628
|
-
ip_hash; # Session persistence
|
|
629
|
-
|
|
630
|
-
server 192.168.1.111:3000 max_fails=3 fail_timeout=30s;
|
|
631
|
-
server 192.168.1.112:3000 max_fails=3 fail_timeout=30s;
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
server {
|
|
635
|
-
listen 80;
|
|
636
|
-
server_name example.com;
|
|
637
|
-
|
|
638
|
-
location / {
|
|
639
|
-
proxy_pass http://web_backend;
|
|
640
|
-
proxy_set_header Host $host;
|
|
641
|
-
proxy_set_header X-Real-IP $remote_addr;
|
|
642
|
-
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
643
|
-
proxy_set_header X-Forwarded-Proto $scheme;
|
|
644
|
-
|
|
645
|
-
# Timeouts
|
|
646
|
-
proxy_connect_timeout 60s;
|
|
647
|
-
proxy_send_timeout 60s;
|
|
648
|
-
proxy_read_timeout 60s;
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
location /api {
|
|
652
|
-
proxy_pass http://api_backend;
|
|
653
|
-
proxy_set_header Host $host;
|
|
654
|
-
proxy_set_header X-Real-IP $remote_addr;
|
|
655
|
-
}
|
|
656
|
-
}
|
|
657
|
-
}
|
|
658
|
-
```
|
|
659
|
-
|
|
660
|
-
## VPN Configuration
|
|
661
|
-
|
|
662
|
-
### WireGuard
|
|
663
|
-
|
|
664
|
-
**Installation:**
|
|
665
|
-
```bash
|
|
666
|
-
sudo apt install wireguard
|
|
667
|
-
```
|
|
668
|
-
|
|
669
|
-
**Server Configuration:**
|
|
670
|
-
```bash
|
|
671
|
-
# Generate keys
|
|
672
|
-
wg genkey | sudo tee /etc/wireguard/private.key
|
|
673
|
-
sudo chmod 600 /etc/wireguard/private.key
|
|
674
|
-
sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key
|
|
675
|
-
|
|
676
|
-
# Server config
|
|
677
|
-
# /etc/wireguard/wg0.conf
|
|
678
|
-
[Interface]
|
|
679
|
-
Address = 10.0.0.1/24
|
|
680
|
-
ListenPort = 51820
|
|
681
|
-
PrivateKey = <server_private_key>
|
|
682
|
-
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
|
683
|
-
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
|
|
684
|
-
|
|
685
|
-
# Client 1
|
|
686
|
-
[Peer]
|
|
687
|
-
PublicKey = <client1_public_key>
|
|
688
|
-
AllowedIPs = 10.0.0.2/32
|
|
689
|
-
|
|
690
|
-
# Client 2
|
|
691
|
-
[Peer]
|
|
692
|
-
PublicKey = <client2_public_key>
|
|
693
|
-
AllowedIPs = 10.0.0.3/32
|
|
694
|
-
|
|
695
|
-
# Enable IP forwarding
|
|
696
|
-
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
|
|
697
|
-
sudo sysctl -p
|
|
698
|
-
|
|
699
|
-
# Start WireGuard
|
|
700
|
-
sudo systemctl enable wg-quick@wg0
|
|
701
|
-
sudo systemctl start wg-quick@wg0
|
|
702
|
-
```
|
|
703
|
-
|
|
704
|
-
**Client Configuration:**
|
|
705
|
-
```bash
|
|
706
|
-
# /etc/wireguard/wg0.conf
|
|
707
|
-
[Interface]
|
|
708
|
-
Address = 10.0.0.2/24
|
|
709
|
-
PrivateKey = <client_private_key>
|
|
710
|
-
DNS = 8.8.8.8
|
|
711
|
-
|
|
712
|
-
[Peer]
|
|
713
|
-
PublicKey = <server_public_key>
|
|
714
|
-
Endpoint = vpn.example.com:51820
|
|
715
|
-
AllowedIPs = 0.0.0.0/0 # Route all traffic through VPN
|
|
716
|
-
# Or: AllowedIPs = 10.0.0.0/24 # Only VPN network
|
|
717
|
-
PersistentKeepalive = 25
|
|
718
|
-
|
|
719
|
-
# Connect
|
|
720
|
-
sudo wg-quick up wg0
|
|
721
|
-
sudo wg-quick down wg0
|
|
722
|
-
```
|
|
723
|
-
|
|
724
|
-
## Network Debugging Tools
|
|
725
|
-
|
|
726
|
-
### tcpdump
|
|
727
|
-
|
|
728
|
-
```bash
|
|
729
|
-
# Capture on interface
|
|
730
|
-
sudo tcpdump -i eth0
|
|
731
|
-
|
|
732
|
-
# Write to file
|
|
733
|
-
sudo tcpdump -i eth0 -w capture.pcap
|
|
734
|
-
|
|
735
|
-
# Read from file
|
|
736
|
-
tcpdump -r capture.pcap
|
|
737
|
-
|
|
738
|
-
# Filter by host
|
|
739
|
-
sudo tcpdump -i eth0 host 192.168.1.100
|
|
740
|
-
|
|
741
|
-
# Filter by port
|
|
742
|
-
sudo tcpdump -i eth0 port 80
|
|
743
|
-
sudo tcpdump -i eth0 'port 80 or port 443'
|
|
744
|
-
|
|
745
|
-
# Filter by protocol
|
|
746
|
-
sudo tcpdump -i eth0 icmp
|
|
747
|
-
sudo tcpdump -i eth0 tcp
|
|
748
|
-
|
|
749
|
-
# Complex filters
|
|
750
|
-
sudo tcpdump -i eth0 'tcp port 80 and (src 192.168.1.0/24 or dst 192.168.1.0/24)'
|
|
751
|
-
|
|
752
|
-
# Show packet contents
|
|
753
|
-
sudo tcpdump -i eth0 -X # Hex and ASCII
|
|
754
|
-
sudo tcpdump -i eth0 -A # ASCII only
|
|
755
|
-
|
|
756
|
-
# Limit packet count
|
|
757
|
-
sudo tcpdump -i eth0 -c 100
|
|
758
|
-
```
|
|
759
|
-
|
|
760
|
-
### ss (Socket Statistics)
|
|
761
|
-
|
|
762
|
-
```bash
|
|
763
|
-
# Replace netstat with ss
|
|
764
|
-
ss -tuln # TCP/UDP listening ports
|
|
765
|
-
|
|
766
|
-
# All sockets
|
|
767
|
-
ss -a
|
|
768
|
-
|
|
769
|
-
# TCP sockets
|
|
770
|
-
ss -t
|
|
771
|
-
|
|
772
|
-
# Listening sockets
|
|
773
|
-
ss -l
|
|
774
|
-
|
|
775
|
-
# Show process
|
|
776
|
-
ss -p
|
|
777
|
-
|
|
778
|
-
# Show statistics
|
|
779
|
-
ss -s
|
|
780
|
-
|
|
781
|
-
# Filter by state
|
|
782
|
-
ss state established
|
|
783
|
-
ss state time-wait
|
|
784
|
-
|
|
785
|
-
# Filter by port
|
|
786
|
-
ss -t dst :80
|
|
787
|
-
ss -t src :22
|
|
788
|
-
|
|
789
|
-
# Show timer information
|
|
790
|
-
ss -o
|
|
791
|
-
```
|
|
792
|
-
|
|
793
|
-
### Other Debugging Tools
|
|
794
|
-
|
|
795
|
-
```bash
|
|
796
|
-
# Ping
|
|
797
|
-
ping -c 4 example.com
|
|
798
|
-
ping -i 0.2 -c 10 192.168.1.1 # Fast ping
|
|
799
|
-
|
|
800
|
-
# Traceroute
|
|
801
|
-
traceroute example.com
|
|
802
|
-
mtr example.com # Better traceroute
|
|
803
|
-
|
|
804
|
-
# DNS lookup
|
|
805
|
-
nslookup example.com
|
|
806
|
-
dig example.com
|
|
807
|
-
dig +short example.com
|
|
808
|
-
dig @8.8.8.8 example.com # Specific nameserver
|
|
809
|
-
|
|
810
|
-
# Test TCP connection
|
|
811
|
-
telnet example.com 80
|
|
812
|
-
nc -zv example.com 80 # netcat
|
|
813
|
-
|
|
814
|
-
# HTTP testing
|
|
815
|
-
curl -v http://example.com
|
|
816
|
-
curl -I http://example.com # Headers only
|
|
817
|
-
|
|
818
|
-
# Network statistics
|
|
819
|
-
netstat -i # Interface statistics
|
|
820
|
-
ip -s link # Modern alternative
|
|
821
|
-
|
|
822
|
-
# ARP
|
|
823
|
-
arp -a
|
|
824
|
-
ip neigh show
|
|
825
|
-
```
|
|
826
|
-
|
|
827
|
-
## Network Performance Tuning
|
|
828
|
-
|
|
829
|
-
### TCP/IP Tuning
|
|
830
|
-
|
|
831
|
-
```bash
|
|
832
|
-
# /etc/sysctl.d/99-network-tuning.conf
|
|
833
|
-
|
|
834
|
-
# Increase buffer sizes
|
|
835
|
-
net.core.rmem_max = 134217728
|
|
836
|
-
net.core.wmem_max = 134217728
|
|
837
|
-
net.ipv4.tcp_rmem = 4096 87380 134217728
|
|
838
|
-
net.ipv4.tcp_wmem = 4096 65536 134217728
|
|
839
|
-
|
|
840
|
-
# TCP window scaling
|
|
841
|
-
net.ipv4.tcp_window_scaling = 1
|
|
842
|
-
|
|
843
|
-
# TCP fast open
|
|
844
|
-
net.ipv4.tcp_fastopen = 3
|
|
845
|
-
|
|
846
|
-
# Congestion control (BBR recommended)
|
|
847
|
-
net.core.default_qdisc = fq
|
|
848
|
-
net.ipv4.tcp_congestion_control = bbr
|
|
849
|
-
|
|
850
|
-
# SYN backlog
|
|
851
|
-
net.ipv4.tcp_max_syn_backlog = 8192
|
|
852
|
-
net.core.somaxconn = 4096
|
|
853
|
-
|
|
854
|
-
# Connection tracking
|
|
855
|
-
net.netfilter.nf_conntrack_max = 1000000
|
|
856
|
-
net.nf_conntrack_max = 1000000
|
|
857
|
-
|
|
858
|
-
# TIME_WAIT sockets
|
|
859
|
-
net.ipv4.tcp_tw_reuse = 1
|
|
860
|
-
net.ipv4.tcp_fin_timeout = 15
|
|
861
|
-
|
|
862
|
-
# Apply settings
|
|
863
|
-
sudo sysctl -p /etc/sysctl.d/99-network-tuning.conf
|
|
864
|
-
```
|
|
865
|
-
|
|
866
|
-
## Best Practices
|
|
867
|
-
|
|
868
|
-
1. **Security:**
|
|
869
|
-
- Default deny firewall policy
|
|
870
|
-
- Use SSH keys, disable password authentication
|
|
871
|
-
- Regular security updates
|
|
872
|
-
- Monitor network traffic
|
|
873
|
-
|
|
874
|
-
2. **DNS:**
|
|
875
|
-
- Use multiple DNS servers
|
|
876
|
-
- Local DNS caching
|
|
877
|
-
- Monitor DNS resolution times
|
|
878
|
-
|
|
879
|
-
3. **Load Balancing:**
|
|
880
|
-
- Health checks on all backends
|
|
881
|
-
- Graceful degradation (backup servers)
|
|
882
|
-
- Monitor backend performance
|
|
883
|
-
- Use SSL/TLS termination at load balancer
|
|
884
|
-
|
|
885
|
-
4. **VPN:**
|
|
886
|
-
- Use modern protocols (WireGuard)
|
|
887
|
-
- Rotate keys periodically
|
|
888
|
-
- Monitor VPN connections
|
|
889
|
-
- Use split tunneling when appropriate
|
|
890
|
-
|
|
891
|
-
5. **Monitoring:**
|
|
892
|
-
- Monitor bandwidth usage
|
|
893
|
-
- Track packet loss
|
|
894
|
-
- Monitor connection states
|
|
895
|
-
- Alert on anomalies
|
|
896
|
-
|
|
897
|
-
## Anti-Patterns
|
|
898
|
-
|
|
899
|
-
### ❌ No Firewall
|
|
900
|
-
|
|
901
|
-
```bash
|
|
902
|
-
# BAD - All ports open
|
|
903
|
-
sudo iptables -F
|
|
904
|
-
sudo iptables -P INPUT ACCEPT
|
|
905
|
-
```
|
|
906
|
-
|
|
907
|
-
### ❌ Single Point of Failure
|
|
908
|
-
|
|
909
|
-
```bash
|
|
910
|
-
# BAD - Only one DNS server
|
|
911
|
-
nameserver 8.8.8.8
|
|
912
|
-
|
|
913
|
-
# GOOD - Multiple DNS servers
|
|
914
|
-
nameserver 8.8.8.8
|
|
915
|
-
nameserver 8.8.4.4
|
|
916
|
-
```
|
|
917
|
-
|
|
918
|
-
### ❌ No Connection Tracking
|
|
919
|
-
|
|
920
|
-
```bash
|
|
921
|
-
# BAD - Stateless rules
|
|
922
|
-
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
|
|
923
|
-
|
|
924
|
-
# GOOD - Stateful firewall
|
|
925
|
-
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
|
|
926
|
-
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
|
|
927
|
-
```
|
|
928
|
-
|
|
929
|
-
### ❌ Hardcoded IP Addresses
|
|
930
|
-
|
|
931
|
-
```bash
|
|
932
|
-
# BAD - IP addresses in application
|
|
933
|
-
# Use DNS names instead
|
|
934
|
-
```
|
|
935
|
-
|
|
936
|
-
## Common Issues
|
|
937
|
-
|
|
938
|
-
**Cannot reach external network:**
|
|
939
|
-
```bash
|
|
940
|
-
# Check default route
|
|
941
|
-
ip route show
|
|
942
|
-
|
|
943
|
-
# Check DNS
|
|
944
|
-
resolvectl status
|
|
945
|
-
ping 8.8.8.8 # Test by IP
|
|
946
|
-
ping google.com # Test by name
|
|
947
|
-
|
|
948
|
-
# Check firewall
|
|
949
|
-
sudo iptables -L -v -n
|
|
950
|
-
```
|
|
951
|
-
|
|
952
|
-
**High latency:**
|
|
953
|
-
```bash
|
|
954
|
-
# Check with mtr
|
|
955
|
-
mtr example.com
|
|
956
|
-
|
|
957
|
-
# Check interface errors
|
|
958
|
-
ip -s link show eth0
|
|
959
|
-
|
|
960
|
-
# Check congestion control
|
|
961
|
-
sysctl net.ipv4.tcp_congestion_control
|
|
962
|
-
```
|
|
963
|
-
|
|
964
|
-
**Connection timeouts:**
|
|
965
|
-
```bash
|
|
966
|
-
# Check if port is open
|
|
967
|
-
sudo ss -tuln | grep :80
|
|
968
|
-
|
|
969
|
-
# Check firewall
|
|
970
|
-
sudo iptables -L INPUT -v -n
|
|
971
|
-
|
|
972
|
-
# Test from remote
|
|
973
|
-
nc -zv server.example.com 80
|
|
974
|
-
```
|
|
975
|
-
|
|
976
|
-
---
|
|
977
|
-
|
|
978
|
-
**Related Topics:**
|
|
979
|
-
- See [security-hardening.md](security-hardening.md) for firewall security
|
|
980
|
-
- See [performance-tuning.md](performance-tuning.md) for network performance
|
|
981
|
-
- See [troubleshooting-guide.md](troubleshooting-guide.md) for network debugging
|
|
982
|
-
- See [system-monitoring.md](system-monitoring.md) for network monitoring
|