René's URL Explorer Experiment


Title: Add config keys for controlling public/private template secondary storage replica counts by Damans227 · Pull Request #12877 · apache/cloudstack · GitHub

Open Graph Title: Add config keys for controlling public/private template secondary storage replica counts by Damans227 · Pull Request #12877 · apache/cloudstack

X Title: Add config keys for controlling public/private template secondary storage replica counts by Damans227 · Pull Request #12877 · apache/cloudstack

Description: Description Adds two new operator-level configuration keys to control the number of secondary storage copies made for public and private templates, decoupling replica count from template visibility. secstorage.public.template.copy.max (default: 0 = all stores, preserving existing behavior) secstorage.private.template.copy.max (default: 1, preserving existing behavior) Doc PR: apache/cloudstack-documentation#643 Types of changes Breaking change New feature Bug fix Enhancement Cleanup Build/CI Test Feature/Enhancement Scale or Bug Severity Feature/Enhancement Scale Major Minor How Has This Been Tested? Unit tests in HypervisorTemplateAdapterTest covering the new replica-limit logic in isZoneAndImageStoreAvailable. Manually verified on a zone with multiple secondary storage pools.

Open Graph Description: Description Adds two new operator-level configuration keys to control the number of secondary storage copies made for public and private templates, decoupling replica count from template visibility...

X Description: Description Adds two new operator-level configuration keys to control the number of secondary storage copies made for public and private templates, decoupling replica count from template visibility...

Opengraph URL: https://github.com/apache/cloudstack/pull/12877

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:2d50961f-3daa-44ad-3e0b-98c566e90ebe
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idE59A:3555CE:13E8273:1AF961C:6A4D74C2
html-safe-nonceaf4c6ade0acec08651106c429159f9931499769e31de7b401afaccc0b3485b0c
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFNTlBOjM1NTVDRToxM0U4MjczOjFBRjk2MUM6NkE0RDc0QzIiLCJ2aXNpdG9yX2lkIjoiNjc1MTAyMTY4MTQ1ODY0MDA2NiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac0dc3efdb2a68813c5e3bb84debd2964645592673d13f8c18776d27bedca3df5a
hovercard-subject-tagpull_request:3434840085
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/apache/cloudstack/pull/12877/files
twitter:imagehttps://avatars.githubusercontent.com/u/61474540?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/61474540?s=400&v=4
og:image:altDescription Adds two new operator-level configuration keys to control the number of secondary storage copies made for public and private templates, decoupling replica count from template visibility...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonec78260c7b3f4ac4b0356c8208537f05406a3a2d46a9ec3f735b372dcc519c39e
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/apache/cloudstack git https://github.com/apache/cloudstack.git
octolytics-dimension-user_id47359
octolytics-dimension-user_loginapache
octolytics-dimension-repository_id9759448
octolytics-dimension-repository_nwoapache/cloudstack
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id9759448
octolytics-dimension-repository_network_root_nwoapache/cloudstack
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release399fff412f48461d435721c009efc17ea44be72f
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/apache/cloudstack/pull/12877/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fapache%2Fcloudstack%2Fpull%2F12877%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fapache%2Fcloudstack%2Fpull%2F12877%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=apache%2Fcloudstack
Reloadhttps://github.com/apache/cloudstack/pull/12877/files
Reloadhttps://github.com/apache/cloudstack/pull/12877/files
Reloadhttps://github.com/apache/cloudstack/pull/12877/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/12877/files
apache https://github.com/apache
cloudstackhttps://github.com/apache/cloudstack
Notifications https://github.com/login?return_to=%2Fapache%2Fcloudstack
Fork 1.3k https://github.com/login?return_to=%2Fapache%2Fcloudstack
Star 3k https://github.com/login?return_to=%2Fapache%2Fcloudstack
Code https://github.com/apache/cloudstack
Issues 536 https://github.com/apache/cloudstack/issues
Pull requests 268 https://github.com/apache/cloudstack/pulls
Discussions https://github.com/apache/cloudstack/discussions
Actions https://github.com/apache/cloudstack/actions
Projects https://github.com/apache/cloudstack/projects
Wiki https://github.com/apache/cloudstack/wiki
Security and quality 0 https://github.com/apache/cloudstack/security
Insights https://github.com/apache/cloudstack/pulse
Code https://github.com/apache/cloudstack
Issues https://github.com/apache/cloudstack/issues
Pull requests https://github.com/apache/cloudstack/pulls
Discussions https://github.com/apache/cloudstack/discussions
Actions https://github.com/apache/cloudstack/actions
Projects https://github.com/apache/cloudstack/projects
Wiki https://github.com/apache/cloudstack/wiki
Security and quality https://github.com/apache/cloudstack/security
Insights https://github.com/apache/cloudstack/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fapache%2Fcloudstack%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fapache%2Fcloudstack%2Fissues%2Fnew%2Fchoose
weizhouapachehttps://github.com/weizhouapache
apache:mainhttps://github.com/apache/cloudstack/tree/main
Damans227:feature/FR284-template-secstorage-copy-controlhttps://github.com/Damans227/cloudstack/tree/feature/FR284-template-secstorage-copy-control
Conversation 61 https://github.com/apache/cloudstack/pull/12877
Commits 16 https://github.com/apache/cloudstack/pull/12877/commits
Checks 27 https://github.com/apache/cloudstack/pull/12877/checks
Files changed https://github.com/apache/cloudstack/pull/12877/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/12877/files
Add config keys for controlling public/private template secondary storage replica counts https://github.com/apache/cloudstack/pull/12877/files#top
Show all changes 16 commits https://github.com/apache/cloudstack/pull/12877/files
40b9e4d Add config keys for controlling public/private template secondary sto… Mar 23, 2026 https://github.com/apache/cloudstack/pull/12877/commits/40b9e4daa643127cb291e154e04529ab8ba3a611
f997444 Allow configurable secondary storage replica count for public and pri… Mar 23, 2026 https://github.com/apache/cloudstack/pull/12877/commits/f99744491929640a14c765d55ce6fbca9f5bd9db
0708236 Add unit tests Mar 23, 2026 https://github.com/apache/cloudstack/pull/12877/commits/0708236786f611243a9383dedf71f0684e0d7930
e5bfeab Refactor secondary storage replica limit handling to use zone-specifi… Damans227 Apr 15, 2026 https://github.com/apache/cloudstack/pull/12877/commits/e5bfeab3255557e1a3a30b306a29574852f30c38
6dbeb52 Refactor as per pr comments Damans227 Apr 15, 2026 https://github.com/apache/cloudstack/pull/12877/commits/6dbeb52ed883c43acdbeb3ee921eeec5de2b4343
bbc0560 Implement secondary storage copy limit check for templates based on z… Damans227 Apr 29, 2026 https://github.com/apache/cloudstack/pull/12877/commits/bbc05603e66db7f0245bf10fed374feb77031152
3b69432 Enhance secondary storage copy limit check to consider image stores b… Damans227 Apr 29, 2026 https://github.com/apache/cloudstack/pull/12877/commits/3b694321519a3c2b9fec9ef2663ccb9ef596b469
c60d927 Improve logging for template store cleanup by adding debug informatio… Damans227 Apr 29, 2026 https://github.com/apache/cloudstack/pull/12877/commits/c60d9277efb8a5f563fa0be2dbf2f0871acd0075
c1f7db2 Add secondary storage copy limit handling for templates based on zone… Damans227 May 19, 2026 https://github.com/apache/cloudstack/pull/12877/commits/c1f7db2b5b2a93790fe2c1b7b880ba8fd8e29551
3e3545e Implement enforcement of secondary storage copy limits for templates … Damans227 May 19, 2026 https://github.com/apache/cloudstack/pull/12877/commits/3e3545eea2e8b900c4bd7ca13ca20b1ba8ffcfe6
f3fa8f8 Refactor template storage handling to improve secondary storage copy … Damans227 May 22, 2026 https://github.com/apache/cloudstack/pull/12877/commits/f3fa8f8f8520ff65d5bf2ca6c20e1dd775db20f6
cb36bef Add template copy limit check to enforce secondary storage constraints Damans227 May 25, 2026 https://github.com/apache/cloudstack/pull/12877/commits/cb36bef9560a6088a7f30f81aa7649f7d8ca3bce
df1ad66 Implement template replication up to capacity after upload and during… Damans227 May 27, 2026 https://github.com/apache/cloudstack/pull/12877/commits/df1ad66455fb6ace7b61f0e71d30f043b817d22f
97569b9 Enhance template replication logic to respect secondary storage copy … Damans227 May 27, 2026 https://github.com/apache/cloudstack/pull/12877/commits/97569b93a18e43e199fa6a54b1b1ddd4cc159f6b
f1e5884 Enforce secondary storage copy limits and replicate templates up to c… Damans227 May 28, 2026 https://github.com/apache/cloudstack/pull/12877/commits/f1e5884b80d190ee5ce45c5a55ea8ed09b254e64
655ce0c Merge branch 'main' into feature/FR284-template-secstorage-copy-control Damans227 Jun 24, 2026 https://github.com/apache/cloudstack/pull/12877/commits/655ce0c14d819895dcf821c7432592236afea9a0
Clear filters https://github.com/apache/cloudstack/pull/12877/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/12877/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/12877/files
TemplateService.java https://github.com/apache/cloudstack/pull/12877/files#diff-a149dbc13339f1c2aa547559ea9539dc71198794ecf162b96bdf5466a7a69faf
TemplateManager.java https://github.com/apache/cloudstack/pull/12877/files#diff-fb0deb4a43ba941b1edfda8c935c1dc7c8a715c3fad946ce873306a513767487
TemplateServiceImpl.java https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
TemplateServiceImplTest.java https://github.com/apache/cloudstack/pull/12877/files#diff-6fdcab298d9e0f16581105ecabfd9b7851a15a3f1b71e294b81ef2d0bcca9463
ImageStoreUploadMonitorImpl.java https://github.com/apache/cloudstack/pull/12877/files#diff-9f6624327e7c824e39582ff696662606aba98e7957a8f9e47a527f5a98ad8fb2
HypervisorTemplateAdapter.java https://github.com/apache/cloudstack/pull/12877/files#diff-9dfc24dff116af0dcb93ce27c741cd44b6b9d6fe71ba8814a343c789108b5a71
TemplateAdapterBase.java https://github.com/apache/cloudstack/pull/12877/files#diff-1cbd06bdd2abfd9c36eefc9cd0059b52229deb386893f1cca791ff8650f8e61d
TemplateManagerImpl.java https://github.com/apache/cloudstack/pull/12877/files#diff-78a0f8d71008be638779fc611cdec0e6ae36167a84ff82d91e96e4a6dea0dc44
HypervisorTemplateAdapterTest.java https://github.com/apache/cloudstack/pull/12877/files#diff-d01df10ef9eac4fbbc68bd42dfef0923aa0bd79d76acc8b35032aa6db30bd1a8
...api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/TemplateService.javahttps://github.com/apache/cloudstack/pull/12877/files#diff-a149dbc13339f1c2aa547559ea9539dc71198794ecf162b96bdf5466a7a69faf
View file https://github.com/Damans227/cloudstack/blob/655ce0c14d819895dcf821c7432592236afea9a0/engine/api/src/main/java/org/apache/cloudstack/engine/subsystem/api/storage/TemplateService.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/12877/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/12877/files#diff-a149dbc13339f1c2aa547559ea9539dc71198794ecf162b96bdf5466a7a69faf
https://github.com/apache/cloudstack/pull/12877/files#diff-a149dbc13339f1c2aa547559ea9539dc71198794ecf162b96bdf5466a7a69faf
engine/components-api/src/main/java/com/cloud/template/TemplateManager.javahttps://github.com/apache/cloudstack/pull/12877/files#diff-fb0deb4a43ba941b1edfda8c935c1dc7c8a715c3fad946ce873306a513767487
View file https://github.com/Damans227/cloudstack/blob/655ce0c14d819895dcf821c7432592236afea9a0/engine/components-api/src/main/java/com/cloud/template/TemplateManager.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/12877/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/12877/files#diff-fb0deb4a43ba941b1edfda8c935c1dc7c8a715c3fad946ce873306a513767487
https://github.com/apache/cloudstack/pull/12877/files#diff-fb0deb4a43ba941b1edfda8c935c1dc7c8a715c3fad946ce873306a513767487
Copilothttps://github.com/apps/copilot-pull-request-reviewer
Mar 25, 2026https://github.com/apache/cloudstack/pull/12877/files#r2989421931
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/apache/cloudstack/pull/12877/files
Copilothttps://docs.github.com/copilot/responsible-use-of-github-copilot-features/responsible-use-of-github-copilot-code-review
https://github.com/apache/cloudstack/pull/12877/files#diff-fb0deb4a43ba941b1edfda8c935c1dc7c8a715c3fad946ce873306a513767487
https://github.com/apache/cloudstack/pull/12877/files#diff-fb0deb4a43ba941b1edfda8c935c1dc7c8a715c3fad946ce873306a513767487
https://github.com/apache/cloudstack/pull/12877/files#diff-fb0deb4a43ba941b1edfda8c935c1dc7c8a715c3fad946ce873306a513767487
.../storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateServiceImpl.javahttps://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
View file https://github.com/Damans227/cloudstack/blob/655ce0c14d819895dcf821c7432592236afea9a0/engine/storage/image/src/main/java/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/12877/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
https://github.com/apache/cloudstack/pull/12877/files#diff-26a612d21d9ef14191e5a32f88fc2b533c6e5be0b8a90eb5f6747bb03dcf80a5
...rage/image/src/test/java/org/apache/cloudstack/storage/image/TemplateServiceImplTest.javahttps://github.com/apache/cloudstack/pull/12877/files#diff-6fdcab298d9e0f16581105ecabfd9b7851a15a3f1b71e294b81ef2d0bcca9463
View file https://github.com/Damans227/cloudstack/blob/655ce0c14d819895dcf821c7432592236afea9a0/engine/storage/image/src/test/java/org/apache/cloudstack/storage/image/TemplateServiceImplTest.java
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/apache/cloudstack/pull/12877/{{ revealButtonHref }}
https://github.com/apache/cloudstack/pull/12877/files#diff-6fdcab298d9e0f16581105ecabfd9b7851a15a3f1b71e294b81ef2d0bcca9463
https://github.com/apache/cloudstack/pull/12877/files#diff-6fdcab298d9e0f16581105ecabfd9b7851a15a3f1b71e294b81ef2d0bcca9463
https://github.com/apache/cloudstack/pull/12877/files#diff-6fdcab298d9e0f16581105ecabfd9b7851a15a3f1b71e294b81ef2d0bcca9463
https://github.com/apache/cloudstack/pull/12877/files#diff-6fdcab298d9e0f16581105ecabfd9b7851a15a3f1b71e294b81ef2d0bcca9463
Please reload this pagehttps://github.com/apache/cloudstack/pull/12877/files
Please reload this pagehttps://github.com/apache/cloudstack/pull/12877/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.