1 2 3<!DOCTYPE html> 4<html> 5 <head> 6 7 8 9 10 11 12 13<meta charset="utf-8"> 14<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" /> 15 16 17 18<meta property="og:title" content="Harbor &ndash; Community"> 19 20<meta property="og:url" content="https://goharbor.io/community/"> 21<meta property="og:locale" content="en_US"> 22 23<meta property="og:site_name" content="Harbor"> 24 25 26<meta name="og:type" content="article"> 27<meta name="og:image" content="https://goharbor.io/img/logos/harbor-icon-color.png"> 28<meta name="og:image:alt" content="Harbor &ndash; Community project logo"> 29<meta name="og:image:type" content="image/png"> 30 31 32 33<meta name="twitter:card" content="summary"> 34<meta name="twitter:site" content="@project_harbor"> 35<meta name="twitter:creator" content="@project_harbor"> 36 37<link rel="canonical" href="https://goharbor.io/community/"> 38<link rel="shortcut icon" href="/favicon.svg" type="image/svg"> 39<meta name="generator" content="Hugo 0.74.0" /> 40 41 <title> 42 43Harbor | Community 44 45 </title> 46 47<link rel="stylesheet" href="/css/style.b36c5e8ca891bb03c745ed6765eae37b4b0f2346d4a9984b346af1db1ad0c8e8.css" integrity="sha256-s2xejKiRuwPHRe1nZerje0sPI0bUqZhLNGrx2xrQyOg="> 48 49 50 51<link rel="shortcut icon" href="/favicon.png"> 52 53 54 55 56 57 58 59 60
60<script> 61 (function() { 62 const theme = localStorage.getItem('harbor-theme') || 63 (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); 64 document.documentElement.setAttribute('data-theme', theme); 65 })(); 66 </script>
66 67 68 69
69<script>
vendor: 351 bytes, lines 69-73
69(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 70 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 71 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 72 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 73 })(window,document,'script','dataLayer','
73GTM-TKWH5SPC
vendor: 3 bytes, line 73
73');
73</script>
73 74 75 </head> 76 <body class="is-page has-navbar-fixed-top">
vendor: 77 bytes, lines 76-78
76 77 78 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
78GTM-TKWH5SPC
vendor: 114 bytes, lines 78-81
78" 79 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 80 81
81<main class="is-main"> 82 83 84 85 86 87 88 89 90 91 92<nav class="navbar is-fixed-top" role="navigation" aria-label="main navigation" x-data="{ open: false }"> 93 <div class="container"> 94 <div class="navbar-brand"> 95 <a class="navbar-item" href="https://goharbor.io"> 96 <img src="/img/logos/harbor-horizontal-color.png" alt="Harbor logo"> 97 </a> 98 99 100 <div class="navbar-item is-hidden-desktop"> 101 <button class="search-trigger search-trigger--compact" 102 type="button" 103 x-data="{ mac: /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform) }" 104 @click="$dispatch('open-search')" 105 aria-label="Search goharbor.io"> 106 <span class="icon is-small"> 107 <i class="fas fa-sm fa-search"></i> 108 </span> 109 </button> 110</div> 111 112 113 114 <div role="button" class="navbar-burger" data-target="navbar-menu" aria-label="menu" aria-expanded="false" @click="open = !open" :class="{ 'is-active': open }"> 115 <span aria-hidden="true"></span> 116 <span aria-hidden="true"></span> 117 <span aria-hidden="true"></span> 118 </div> 119 120 </div> 121 122 123 <div class="navbar-menu" id="navbar-menu" :class="{ 'is-active': open }"> 124 125 126 127 <div class="navbar-end"> 128 <div class="navbar-item is-hidden-touch"> 129 <button class="search-trigger" 130 type="button" 131 x-data="{ mac: /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform) }" 132 @click="$dispatch('open-search')" 133 aria-label="Search goharbor.io"> 134 <span class="icon is-small"> 135 <i class="fas fa-sm fa-search"></i> 136 </span> 137 <span class="search-trigger__label">Search</span> 138 <span class="search-trigger__hint" aria-hidden="true" 139 x-text="mac ? 'âK' : 'Ctrl K'"></span> 140 </button> 141</div> 142 143 144 145 146 147 148 <a class="navbar-item has-text-weight-bold" href="/" data-proofer-ignore> 149 Home 150 </a> 151 152 153 154 155 <a class="navbar-item has-text-weight-bold" href="/docs/latest/install-config" data-proofer-ignore> 156 Getting Started 157 </a> 158 159 160 161 162 <a class="navbar-item has-text-weight-bold" href="/community" data-proofer-ignore> 163 Community 164 </a> 165 166 167 168 169 <a class="navbar-item has-text-weight-bold" href="/blog" data-proofer-ignore> 170 Blog 171 </a> 172 173 174 <div class="navbar-item has-dropdown is-hoverable"> 175 <p class="navbar-link is-arrowless has-text-weight-bold"> 176 <span> 177 Docs 178 </span> 179 <span class="icon has-text-secondary"> 180 <i class="fas fa-caret-down"></i> 181 </span> 182 </p> 183 184 <div class="navbar-dropdown is-right"> 185 <div class="navbar-item"> 186 <div class="columns"> 187 <div class="column"> 188 <a class="has-text-black" href="/cli-docs" data-proofer-ignore> 189 <span> 190 Harbor CLI Docs 191 </span> 192 </a> 193 </div> 194 </div> 195 </div> 196 197 198 <div class="navbar-item"> 199 <div class="columns"> 200 <div class="column"> 201 <a class="has-text-black" href="/docs/2.15.0" data-proofer-ignore> 202 <span> 203 2.15.0 204 </span> 205 206 207 <span class="tag is-success"> 208 latest 209 </span> 210 211 </a> 212 </div> 213 </div> 214 </div> 215 216 217 <div class="navbar-item"> 218 <div class="columns"> 219 <div class="column"> 220 <a class="has-text-black" href="/docs/2.14.0" data-proofer-ignore> 221 <span> 222 2.14.0 223 </span> 224 225 226 </a> 227 </div> 228 </div> 229 </div> 230 231 232 <div class="navbar-item"> 233 <div class="columns"> 234 <div class="column"> 235 <a class="has-text-black" href="/docs/2.13.0" data-proofer-ignore>
236 <span> 237 2.13.0 238 </span> 239 240 241 </a> 242 </div> 243 </div> 244 </div> 245 246 247 <div class="navbar-item"> 248 <div class="columns"> 249 <div class="column"> 250 <a class="has-text-black" href="/docs/2.12.0" data-proofer-ignore> 251 <span> 252 2.12.0 253 </span> 254 255 256 </a> 257 </div> 258 </div> 259 </div> 260 261 262 <div class="navbar-item"> 263 <div class="columns"> 264 <div class="column"> 265 <a class="has-text-black" href="/docs/2.11.0" data-proofer-ignore> 266 <span> 267 2.11.0 268 </span> 269 270 271 </a> 272 </div> 273 </div> 274 </div> 275 276 277 <div class="navbar-item"> 278 <div class="columns"> 279 <div class="column"> 280 <a class="has-text-black" href="/docs/2.10.0" data-proofer-ignore> 281 <span> 282 2.10.0 283 </span> 284 285 286 </a> 287 </div> 288 </div> 289 </div> 290 291 292 <div class="navbar-item"> 293 <div class="columns"> 294 <div class="column"> 295 <a class="has-text-black" href="/docs/2.9.0" data-proofer-ignore> 296 <span> 297 2.9.0 298 </span> 299 300 301 </a> 302 </div> 303 </div> 304 </div> 305 306 307 <div class="navbar-item"> 308 <div class="columns"> 309 <div class="column"> 310 <a class="has-text-black" href="/docs/2.8.0" data-proofer-ignore> 311 <span> 312 2.8.0 313 </span> 314 315 316 </a> 317 </div> 318 </div> 319 </div> 320 321 322 <div class="navbar-item"> 323 <div class="columns"> 324 <div class="column"> 325 <a class="has-text-black" href="/docs/2.7.0" data-proofer-ignore> 326 <span> 327 2.7.0 328 </span> 329 330 331 </a> 332 </div> 333 </div> 334 </div> 335 336 337 <div class="navbar-item"> 338 <div class="columns"> 339 <div class="column"> 340 <a class="has-text-black" href="/docs/2.6.0" data-proofer-ignore> 341 <span> 342 2.6.0 343 </span> 344 345 346 </a> 347 </div> 348 </div> 349 </div> 350 351 352 <div class="navbar-item"> 353 <div class="columns"> 354 <div class="column"> 355 <a class="has-text-black" href="/docs/2.5.0" data-proofer-ignore> 356 <span> 357 2.5.0 358 </span> 359 360 361 </a> 362 </div> 363 </div> 364 </div> 365 366 367 <div class="navbar-item"> 368 <div class="columns"> 369 <div class="column"> 370 <a class="has-text-black" href="/docs/2.4.0" data-proofer-ignore> 371 <span> 372 2.4.0 373 </span> 374 375 376 </a> 377 </div> 378 </div> 379 </div> 380 381 382 <div class="navbar-item"> 383 <div class="columns"> 384 <div class="column"> 385 <a class="has-text-black" href="/docs/2.3.0" data-proofer-ignore>
386 <span> 387 2.3.0 388 </span> 389 390 391 </a> 392 </div> 393 </div> 394 </div> 395 396 397 <div class="navbar-item"> 398 <div class="columns"> 399 <div class="column"> 400 <a class="has-text-black" href="/docs/2.2.0" data-proofer-ignore> 401 <span> 402 2.2.0 403 </span> 404 405 406 </a> 407 </div> 408 </div> 409 </div> 410 411 412 <div class="navbar-item"> 413 <div class="columns"> 414 <div class="column"> 415 <a class="has-text-black" href="/docs/2.1.0" data-proofer-ignore> 416 <span> 417 2.1.0 418 </span> 419 420 421 </a> 422 </div> 423 </div> 424 </div> 425 426 427 <div class="navbar-item"> 428 <div class="columns"> 429 <div class="column"> 430 <a class="has-text-black" href="/docs/2.0.0" data-proofer-ignore> 431 <span> 432 2.0.0 433 </span> 434 435 436 </a> 437 </div> 438 </div> 439 </div> 440 441 442 <div class="navbar-item"> 443 <div class="columns"> 444 <div class="column"> 445 <a class="has-text-black" href="/docs/1.10" data-proofer-ignore> 446 <span> 447 1.10 448 </span> 449 450 451 </a> 452 </div> 453 </div> 454 </div> 455 456 </div> 457 </div> 458 459 460 461 462<div 463 class="navbar-item theme-toggle-wrapper" 464 x-data="{ 465 theme: 'light', 466 init() { 467 // Initialize theme from localStorage or system preference 468 const savedTheme = localStorage.getItem('harbor-theme'); 469 const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; 470 this.theme = savedTheme || (systemPrefersDark ? 'dark' : 'light'); 471 this.applyTheme(); 472 }, 473 applyTheme() { 474 document.documentElement.setAttribute('data-theme', this.theme); 475 localStorage.setItem('harbor-theme', this.theme); 476 }, 477 toggleTheme() { 478 this.theme = this.theme === 'light' ? 'dark' : 'light'; 479 this.applyTheme(); 480 } 481 }" 482> 483 <button 484 @click="toggleTheme()" 485 class="theme-toggle" 486 :aria-label="theme === 'light' ? 'Switch to dark mode' : 'Switch to light mode'" 487 :title="theme === 'light' ? 'Switch to dark mode' : 'Switch to light mode'" 488 type="button" 489 > 490 <span class="icon"> 491 <i :class="theme === 'light' ? 'fas fa-moon' : 'fas fa-sun'"></i> 492 </span> 493 </button> 494</div> 495 496 497 <div class="navbar-item"> 498 <div class="buttons"> 499 <a class="button is-small is-black is-outlined" target="_blank" href="https://github.com/goharbor/harbor" aria-label="GitHub"> 500 <span class="icon"> 501 <i class="fab fa-github"></i> 502 </span> 503 </a> 504 505 <a class="button is-small is-twitter-blue" target="_blank" href="https://twitter.com/project_harbor" aria-label="Twitter"> 506 <span class="icon"> 507 <i class="fab fa-twitter"></i> 508 </span> 509 </a> 510 511 <a class="button is-small is-slack-green" target="_blank" href="https://cloud-native.slack.com/messages/harbor" aria-label="Slack"> 512 <span class="icon"> 513 <i class="fab fa-slack"></i> 514 </span> 515 </a> 516</div> 517 518 </div> 519 </div> 520 521 </div> 522 523 </div> 524</nav> 525 526 <div class="search" 527 x-data="harborSearch" 528 @open-search.window="openModal()" 529 data-docs-version="" 530 data-latest-version="2.15.0"> 531 532 <div class="search-backdrop" 533 x-show="open" 534 @click="closeModal()" 535 style="display: none;"></div> 536 537 538 <div class="search-modal" role="dialog" aria-modal="true" aria-label="Search goharbor.io" 539 x-ref="modal" 540 x-show="open" 541 @keydown.escape.window.prevent="open && closeModal()" 542 @keydown="trapFocus($event)" 543 style="display: none;"> 544 545 <div class="search-modal__header">
546 <span class="icon search-modal__icon"> 547 <i class="fas fa-search"></i> 548 </span> 549 550 <input class="search-modal__input" 551 type="text" 552 placeholder="Search Harbor docs and site..." 553 aria-label="Search query" 554 role="combobox" 555 aria-controls="search-results-list" 556 aria-autocomplete="list" 557 :aria-expanded="totalResults.length > 0" 558 :aria-activedescendant="activeDescendantId()" 559 x-ref="searchInput" 560 x-model="query" 561 @input.debounce.150ms="search()" 562 @keydown="handleKeydown($event)" 563 autocomplete="off"> 564 <button class="search-modal__close" @click="closeModal()" aria-label="Close search"> 565 <span class="icon"><i class="fas fa-times"></i></span> 566 </button> 567 </div> 568 569 570 <div class="search-filters" x-show="hasFilters()"> 571 <button class="search-filters__pill" 572 :class="{ 'search-filters__pill--active': activeType === 'all' }" 573 :aria-pressed="activeType === 'all'" 574 @click="setType('all')">All</button> 575 576 577 <div class="search-pill" 578 :class="{ 'search-pill--active': activeType === 'Docs' }" 579 x-show="hasType('Docs')"> 580 <button class="search-pill__label" 581 :aria-pressed="activeType === 'Docs'" 582 @click="setType('Docs')">Docs</button> 583 <span class="search-pill__version"> 584 <select id="search-version" 585 aria-label="Harbor docs version to search" 586 x-ref="versionSelect" 587 @change="setVersion($event.target.value)"> 588 <template x-for="v in versions" :key="v"> 589 <option :value="v" x-text="v"></option> 590 </template> 591 </select> 592 </span> 593 </div> 594 595 596 <button class="search-filters__pill" 597 :class="{ 'search-filters__pill--active': activeType === 'Website' }" 598 :aria-pressed="activeType === 'Website'" 599 @click="setType('Website')" 600 x-show="websiteTypes().length">Website</button> 601 </div> 602 603 <div class="search-results" x-ref="resultsList"> 604 <div class="search-loading" x-show="loading" role="status" aria-live="polite"> 605 Searching… 606 </div> 607 608 609 <div id="search-results-list" role="listbox" aria-label="Search results"> 610 <template x-for="group in sectionOrder" :key="group"> 611 <div role="group" :aria-label="group"> 612 <div class="search-results__section" x-text="group" aria-hidden="true"></div> 613 <template x-for="result in groupedResults[group]" :key="result.url"> 614 <a class="search-result" 615 role="option" 616 :id="resultId(result)" 617 :aria-selected="isSelected(result)" 618 :class="{ 'search-result--active': isSelected(result) }" 619 :href="result.url" 620 @click="onResultClick($event)" 621 @mouseenter="selectedIndex = totalResults.indexOf(result)"> 622 <div class="search-result__title"> 623 <span x-text="result.meta?.title || 'Untitled'"></span> 624 625 <span class="tag is-light search-result__version" 626 x-show="versionOf(result)" 627 x-text="versionOf(result)"></span> 628 </div> 629 <div class="search-result__excerpt" x-html="result.excerpt"></div> 630 </a> 631 </template> 632 </div> 633 </template> 634 </div> 635 636 637 <div class="search-empty" x-show="searchError && !loading" role="alert"> 638 <p><strong>Search is unavailable right now.</strong></p> 639 <p>The search index could not be loaded.</p> 640 <p> 641 <button class="search-filters__pill" @click="retry()">Try again</button> 642 </p> 643 </div> 644 645 <div class="search-empty" 646 x-show="!searchError && query.length > 0 && totalResults.length === 0 && !loading"> 647 <p>No results for “<span x-text="query"></span>”</p> 648 649 <p x-show="version && activeType !== 'Website'"> 650 Docs results are limited to Harbor <span x-text="version"></span>. 651 Try another release from the <strong>Docs</strong> selector. 652 </p> 653 </div> 654 </div> 655 </div> 656</div> 657 658 659 660 661 662
663<script src="/js/search.min.dc594391107969d142d97211c036ce1ec40280e997d86174bf5f7411ca94468d.js" integrity="sha256-3FlDkRB5adFC2XIRwDbOHsQCgOmX2GF0v190EcqURo0="></script>
663 664 665 666 667 668 669 670 671<section class="hero is-small"> 672 <div class="hero-body"> 673 <div class="container"> 674 <br/> 675 <p class="title is-size-1 is-size-2-mobile has-text-weight-light"> 676 Community 677 </p> 678 679 680 </div> 681 </div> 682</section> 683 684 685 686<section class="section"> 687 <div class="container"> 688 <meta data-pagefind-filter="scope[content]" content="site"> 689 <meta data-pagefind-filter="type[content]" content="Community"> 690 <meta data-pagefind-meta="title[content]" content="Community"> 691 <div class="content is-medium" data-pagefind-body> 692 <div class="columns"> 693 694 <div class="column"> 695 <h2> 696 Join the Harbor community! 697 </h2> 698 699 <p class="is-size-5"> 700 Harbor is developed in the open, and is constantly being improved by our <b>users, contributors, and maintainers</b>. 701 It is because of you that we can bring great software to the community. 702 <br/> 703 <br/> 704 <b>Come join us!</b> 705 <br/> <br/> 706 </p> 707 <a href="https://twitter.com/project_harbor"> 708 <div class="button is-twitter-blue"> 709 <span class="icon"> 710 <i class="fab fa-twitter"></i> 711 </span> 712 <span class="has-text-white has-text-weight-bold" > 713 Follow us on Twitter @project_harbor 714 </span> 715 </div> 716 </a> 717 </div> 718 719 <div class="column"> 720 <h2> 721 Community Meetings 722 </h2> 723 724 <p class="is-size-5"> 725 We have a recurring bi-weekly Harbor community meeting at <code>9PM UTC+8 time zone</code>. We will use this meeting to communicate updates to the project, listen to feedback from the Harbor community, and also collect requirements/use cases for new features. 726 </p> 727 728 <div class="container"> 729 <div class="columns is-variable is-6"> 730 <div class="column"> 731 <h3> 732 <span class="icon has-text-secondary has-margin-right"> 733 <i class="fas fa-phone"></i> 734 </span> 735 <span> 736 Bi-weekly public community meetings 737 </span> 738 </h3> 739 740 <p> 741 Read, comment, or add agenda items on the <a href="https://hackmd.io/@harbor/r14BkYaOa" target="_blank">meeting notes</a> and add our calendar and subscribe at <a href="https://lists.cncf.io/g/harbor-users" target="_blank">our mailing list</a> to get the latest Harbor news, what we're working on, and provide suggestions and feedback. 742 </p> 743 </div> 744 745 <div class="column"> 746 <h3> 747 <span class="icon has-text-secondary has-margin-right"> 748 <i class="fab fa-youtube"></i> 749 </span> 750 <span> 751 Catch up with past meetings on YouTube 752 </span> 753 </h3> 754 755 <p> 756 All Harbor community meetings are recorded and added to our <a href="https://www.youtube.com/playlist?list=PLgInP-D86bCwTC0DYAa1pgupsQIAWPomv" target="_blank">YouTube playlist</a>. 757 </p> 758 </div> 759 </div> 760 </div> 761 </div> 762 <div class="column"> 763 764 <div class="container"> 765 <div class="columns is-variable is-6"> 766 <div class="column"> 767 <h3> 768 <span class="icon has-text-secondary has-margin-right"> 769 <i class="fas fa-phone"></i> 770 </span> 771 <span> 772 Meeting information 773 </span> 774 </h3> 775 776 <p> 777 See all the meeting information and add our planned calendar over at <a href="https://github.com/goharbor/community/wiki/Harbor-Community-Meetings" target="_blank">our meeting notes and agenda</a>. All meetings will be recorded and upload to <a href="https://www.youtube.com/playlist?list=PLgInP-D86bCxeNorqeaVlJMv_4x95Le7x" target="_blank">YouTube</a>. 778 </p> 779 </div> 780 781 </div> 782 </div> 783 </div> 784</div> 785 786<hr> 787<div class="columns"> 788 <div class="column"> 789 <h2> 790 Chat with us on the CNCF Slack 791 </h2> 792 793 <div class="buttons"> 794 <a href="https://cloud-native.slack.com/messages/harbor"> 795 <div class="button is-slack-green"> 796 <span class="icon"> 797 <i class="fab fa-slack"></i> 798 </span>
799 <span class="has-text-white has-text-weight-bold" > 800 Slack: #harbor for end-user discussions 801 </span> 802 </div> 803 </a> 804 805 806 807 <a href="https://cloud-native.slack.com/messages/harbor"> 808 <div class="button is-slack-green"> 809 <span class="icon"> 810 <i class="fab fa-slack"></i> 811 </span> 812 <span class="has-text-white has-text-weight-bold" > 813 Slack: #harbor-dev for development of Harbor 814 </span> 815 </div> 816 </a> 817 818 <p class="is-size-5"> 819 Note: To access the CNCF slack, you need an invitation 820 which can be obtained at 821 <a href="https://slack.cncf.io/">https://slack.cncf.io</a>. 822 </p> 823 </div> 824 </div> 825 826 <div class="column"> 827 <h2> 828 Distribution lists 829 </h2> 830 831 <p class="is-size-5"> 832 There are two distribution lists for Harbor, one for users and one for developers: 833 </p> 834 835 <div class="container"> 836 <div class="columns is-variable is-6"> 837 <div class="column"> 838 <h3> 839 <span class="icon has-text-secondary has-margin-right"> 840 <i class="fas fa-users"></i> 841 </span> 842 <span> 843 User group 844 </span> 845 </h3> 846 847 <p> 848 Join Harbor's user email group at <a href="https://lists.cncf.io/g/harbor-users" target="_blank">https://lists.cncf.io/g/harbor-users</a> to get Harbor's news, features, and releases, or to provide suggestions and feedback. 849 </p> 850 </div> 851 852 <div class="column"> 853 <h3> 854 <span class="icon has-text-secondary has-margin-right"> 855 <i class="fas fa-laptop"></i> 856 </span> 857 <span> 858 Developer group 859 </span> 860 </h3> 861 862 <p> 863 Join Harbor's developer group at <a href="https://lists.cncf.io/g/harbor-dev" target="_blank">https://lists.cncf.io/g/harbor-dev</a> for updates related to development and contribution. 864 </p> 865 </div> 866 </div> 867 </div> 868 </div> 869</div> 870 871<h2 id="want-to-contribute-to-the-codebase-or-documentation">Want to contribute to the codebase or documentation?</h2> 872<p>If youâre a newcomer, check out the â 873<a href="https://github.com/goharbor/harbor/issues?q=is%3Aopen+is%3Aissue+label%3Acommunity%2Fgood-first-issue" target="_blank">Good first issue</a>â and â 874<a href="https://github.com/goharbor/harbor/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22" target="_blank">Help wanted</a>â labels in the Harbor repository.</p> 875<p>If you are ready to jump in and test, add code, or help with documentation, follow the instructions on our 876<a href="https://github.com/goharbor/harbor/blob/main/CONTRIBUTING.md" target="_blank">contributing</a> documentation for guidance on how to setup Harbor for development.</p> 877<p>You can follow the work we plan to do using the 878<a href="https://github.com/goharbor/harbor/blob/main/ROADMAP.md" target="_blank">Harbor Roadmap</a> and see our milestones on our
879<a href="https://github.com/orgs/goharbor/projects/1" target="_blank">project board</a>. You can also follow the state of all issues and our backlog on the 880<a href="https://app.zenhub.com/workspaces/cncf-5b84fc036092773c0b854fe6/board?repos=50613991" target="_blank">ZenHub</a> board.</p> 881<hr> 882<h2 id="users-of-harbor">Users of Harbor</h2> 883 884<div class="container"> 885 <div class="columns is-multiline is-variable is-8"> 886 887 888 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 889 <a href="https://www.360totalsecurity.com/en/"><img src="/img/logos/users-partners/360-total-security-logo.png" alt="360-total-security user logo" style="max-height: 128px;margin: 20px;"></a> 890 </div> 891 892 893 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 894 <a href="https://www.axatp.com/"><img src="/img/logos/users-partners/axa-logo.png" alt="axatp user logo" style="max-height: 128px;margin: 20px;"></a> 895 </div> 896 897 898 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 899 <a href="http://www.beyondsoft.com/"><img src="/img/logos/users-partners/beyond-logo.png" alt="beyondsoft user logo" style="max-height: 128px;margin: 20px;"></a> 900 </div> 901 902 903 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 904 <a href='http://www.boericasa.com/'><img src="/img/logos/users-partners/boer-logo.png" alt="boer user logo" style="max-height: 128px;margin: 20px;"></a> 905 </div> 906 907 908 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 909 <a href="https://www.home.cern/"><img src="/img/logos/users-partners/cern-logo.png" alt="CERN user logo" style="max-height: 128px;margin: 20px;"></a> 910 </div> 911 912 913 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 914 <a href="http://www.chinamobileltd.com/"><img src="/img/logos/users-partners/china-mobile-logo.png" alt="china-mobile user logo" style="max-height: 128px;margin: 20px;"></a> 915 </div> 916 917 918 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 919 <a href="http://www.cloud-star.com.cn/"><img src="/img/logos/users-partners/cloud-logo.png" alt="cloudstar user logo" style="max-height: 128px;margin: 20px;"></a> 920 </div> 921 922 923 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 924 <a href="https://www.datayes.com/en/?lang=en-US"><img src="/img/logos/users-partners/datayes-logo.png" alt="datayes user logo" style="max-height: 128px;margin: 20px;"></a> 925 </div> 926 927 928 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 929 <a href="https://www.de-cix.net"><img src="/img/logos/users-partners/de-cix.png" alt="de-cix user logo" style="max-height: 128px;margin: 20px;"></a> 930 </div> 931 932 933 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 934 <a href="https://docnetwork.org/"><img src="/img/logos/users-partners/docnetwork.png" alt="DocNetwork user logo" style="max-height: 128px;margin: 20px;"></a> 935 </div> 936 937 938 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 939 <a href="https://www.dynatrace.com/"><img src="/img/logos/users-partners/dynatrace-logo.png" alt="dynatrace user logo" style="max-height: 128px;margin: 20px;"></a> 940 </div> 941 942 943 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 944 <a href="http://www.hydsoft.com/en/"><img src="/img/logos/users-partners/hydsoft-logo.png" alt="hydsoft user logo" style="max-height: 128px;margin: 20px;"></a> 945 </div> 946 947 948 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 949 <a href="https://www.jd.com/"><img src="/img/logos/users-partners/jd.com-logo.png" alt="JD user logo" style="max-height: 128px;margin: 20px;"></a> 950 </div> 951 952 953 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 954 <a href="https://www.ns.nl/"><img src="/img/logos/users-partners/nederlandse-spoorwegen-logo.png" alt="Nederlandse Spoorwegen user logo" style="max-height: 128px;margin: 20px;"></a> 955 </div> 956 957 958 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 959 <a href="https://www.163yun.com/"><img src="/img/logos/users-partners/netease-logo.png" alt="netease user logo" style="max-height: 128px;margin: 20px;"></a> 960 </div> 961 962 963 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 964 <a href="https://open.com.cn/"><img src="/img/logos/users-partners/open-logo.png" alt="openedutainment user logo" style="max-height: 128px;margin: 20px;"></a> 965 </div> 966 967 968 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 969 <a href="https://www.ovhcloud.com/en-ie/"><img src="/img/logos/users-partners/OVHcloud-logo.png" alt="OVHcloud user logo" style="max-height: 128px;margin: 20px;"></a> 970 </div> 971 972 973 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 974 <a href="https://www.pitsdatenrettung.de/"><img src="/img/logos/users-partners/pits-globale-datenrettungsdienste.png" alt="PITS Globale Datenrettungsdienste user logo" style="max-height: 128px;margin: 20px;"></a> 975 </div> 976 977 978 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 979 <a href="https://www.talkingdata.com/"><img src="/img/logos/users-partners/talkingdata-logo.png" alt="talkingdata user logo" style="max-height: 128px;margin: 20px;"></a> 980 </div> 981 982 983 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 984 <a href="https://www.trendmicro.com"><img src="/img/logos/users-partners/trend-micro-logo.png" alt="trendmicro user logo" style="max-height: 128px;margin: 20px;"></a> 985 </div> 986 987 988 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 989 <a href="http://www.wise2c.com/"><img src="/img/logos/users-partners/wise-logo.png" alt="wise2c user logo" style="max-height: 128px;margin: 20px;"></a> 990 </div> 991 992 993 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 994 <a href="https://www.yanrongyun.com/"><img src="/img/logos/users-partners/yanrong-logo.png" alt="yanrongyun user logo" style="max-height: 128px;margin: 20px;"></a> 995 </div> 996 997 </div> 998</div> 999 1000<hr> 1001<h2 id="partners-of-harbor">Partners of Harbor</h2> 1002 1003<div class="container"> 1004 <div class="columns is-multiline is-variable is-8"> 1005 1006 1007 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1008 <a href="https://container-registry.com/"><img src="/img/logos/users-partners/8gears-container-registry.png" alt="8gears Container Registry partner logo" style="max-height: 128px"></a> 1009 </div> 1010 1011 1012 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1013 <a href="https://www.alauda.io/"><img src="/img/logos/users-partners/alauda-logo.png" alt="alauda partner logo" style="max-height: 128px"></a> 1014 </div> 1015 1016 1017 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1018 <a href="https://anchore.com/"><img src="/img/logos/users-partners/anchore-logo.png" alt="anchore partner logo" style="max-height: 128px"></a> 1019 </div> 1020 1021 1022 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1023 <a href="https://www.aquasec.com"><img src="/img/logos/users-partners/aquasec-logo.png" alt="aquasecurity partner logo" style="max-height: 128px"></a> 1024 </div> 1025 1026 1027 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1028 <a href="https://www.dosec.cn/"><img src="/img/logos/users-partners/dosec-logo.png" alt="dosec partner logo" style="max-height: 128px"></a> 1029 </div> 1030 1031 1032 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1033 <a href="http://www.cloudchef.io/"><img src="/img/logos/users-partners/cloudchef-logo.png" alt="cloudchef partner logo" style="max-height: 128px"></a> 1034 </div> 1035 1036 1037 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1038 <a href="https://rancher.com/"><img src="/img/logos/users-partners/rancher-logo.png" alt="rancher partner logo" style="max-height: 128px"></a> 1039 </div> 1040 1041 1042 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1043 <a href="http://www.slamtec.com/en/"><img src="/img/logos/users-partners/slamtec-logo.png" alt="slamtec partner logo" style="max-height: 128px"></a> 1044 </div> 1045 1046 1047 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1048 <a href="https://sysdig.com"><img src="/img/logos/users-partners/sysdig-logo.png" alt="sysdig partner logo" style="max-height: 128px"></a> 1049 </div> 1050 1051 1052 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1053 <a href="https://tensorsecurity.cn"><img src="/img/logos/users-partners/tensorsecurity.png" alt="tensorsecurity partner logo" style="max-height: 128px"></a> 1054 </div> 1055 1056 1057 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1058 <a href="https://www.tenxcloud.com/"><img src="/img/logos/users-partners/tenxcloud-logo.png" alt="tenxcloud partner logo" style="max-height: 128px"></a> 1059 </div> 1060 1061 1062 <div class="column is-one-quarter has-text-centered" style="display: flex;justify-content: center;flex-wrap: nowrap;align-items: center;"> 1063 <a href="https://vmware.com/"><img src="/img/logos/users-partners/vmware-logo.png" alt="vmware partner logo" style="max-height: 128px"></a> 1064 </div> 1065 1066 </div> 1067</div> 1068 1069 1070 </div> 1071 </div> 1072</section> 1073 1074 </main> 1075 1076 1077 1078<footer class="footer"> 1079 <div class="container"> 1080 <div class="columns"> 1081 <div class="column"> 1082 <img class="is-footer-logo" src="/img/logos/harbor-horizontal-color.svg" alt="Harbor footer logo"> 1083 </div> 1084 1085 <div class="column"> 1086 <div> 1087 <a class="has-text-black is-small" target="_blank" href="https://github.com/goharbor/harbor">
1088 <span class="icon"> 1089 <i class="fab fa-github"></i> 1090 </span> 1091 <span> 1092 GitHub 1093 </span> 1094 </a> 1095 </div> 1096 <div> 1097 <a class="has-text-black is-small" target="_blank" href="https://status.goharbor.io"> 1098 <span class="icon"> 1099 <i class="fa-solid fa-gauge"></i> 1100 </span> 1101 <span> 1102 Community Registry Status 1103 </span> 1104 </a> 1105 </div> 1106 <div> 1107 <a class="has-text-black is-small" target="_blank" href="https://github.com/cncf/artwork/tree/master/projects/harbor"> 1108 <span class="icon"> 1109 <i class="fa fa-palette"></i> 1110 </span> 1111 <span> 1112 Logos 1113 </span> 1114 </a> 1115 </div> 1116 </div> 1117 1118 1119 <div class="column"> 1120 <div> 1121 <a class="has-text-black is-small" target="_blank" href="https://cloud-native.slack.com/messages/harbor"> 1122 <span class="icon"> 1123 <i class="fab fa-slack"></i> 1124 </span> 1125 <span> 1126 Slack 1127 </span> 1128 </a> 1129 </div> 1130 <div> 1131 <a class="has-text-black is-small" target="_blank" 1132 href="https://twitter.com/project_harbor"> 1133 <span class="icon"> 1134 <i class="fab fa-twitter"></i> 1135 </span> 1136 <span> 1137 Twitter 1138 </span> 1139 </a> 1140 </div> 1141 </div> 1142 </div> 1143 1144 <hr class="thick"/> 1145 1146 <div class="is-size-6 has-text-black has-text-weight-light"> 1147 <p> 1148 © Harbor Authors 2026 | Documentation Distributed under <a 1149 href="https://creativecommons.org/licenses/by/4.0/" target="_blank">CC-BY-4.0</a> 1150 </p> 1151 1152 <br/> 1153 1154 <p> 1155 Copyright Harbor a Series of LF Projects, LLC<br/> 1156 For website terms of use, trademark policy and other project policies please see <a href="https://lfprojects.org/policies/" target="_blank">https://lfprojects.org/policies/</a>. 1157 </p> 1158 </div> 1159 </div> 1160</footer> 1161 1162
1163<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js" defer></script>
1163 1164 1165
1166<script> 1167 const navbarHeight = document.getElementsByClassName('navbar')[0].offsetHeight; 1168 const extraPadding = 15; 1169 const navbarOffset = -1 * (navbarHeight + extraPadding); 1170 var shiftWindow = function() { scrollBy(0, navbarOffset) }; 1171 window.addEventListener("hashchange", shiftWindow); 1172 window.addEventListener("pageshow", shiftWindow); 1173 function load() { if (window.location.hash) shiftWindow(); } 1174 1175 console.log("OK"); 1176</script>
vendor: 1 bytes, line 1176
1176
1177<script src="/js/table-popout.js"></script>
1177 1178 1179
1180<script async id="netlify-rum-container" src="/.netlify/scripts/rum" data-netlify-rum-site-id="8b568501-2d2b-4760-9948-8f6bde03bfb0" data-netlify-deploy-branch="main" data-netlify-deploy-context="production" data-netlify-cwv-token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzaXRlX2lkIjoiOGI1Njg1MDEtMmQyYi00NzYwLTk5NDgtOGY2YmRlMDNiZmIwIiwiYWNjb3VudF9pZCI6IjVlZjUyMmNlMDJjNzU5MDAzYmYwMTU3ZiIsImRlcGxveV9pZCI6IjZhYjBmYTY0OTc3Y2ZjMDAwODU1NWQ5ZCIsImlzc3VlciI6Im5mc2VydmVyIn0.xzEXBLNxQmlxlTKnxe0ENuiByT2ITxjgzUXs93SsFTc"></script>
1180 1181</body> 1182</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.