Sysconfig Keys¶
These are the system configuration keys used by the platform applications. Any key not set defaults to false.
Flags (0 false, 1 true)¶
event_active: Enable/Disable current eventplayer_profile: Enable/Disable player profilesplayer_require_approvalIf player activation requires moderator approval firstplayer_require_identificationWhether players need to provide proof of ID during registrationall_players_vip: Allow all players to have VIP features enableddashboard_is_home: Enable/Disable dashboard as default home page for playersdashboard_graph_visible: Enable/Disable dashboard activity graph for last 10 daysstream_record_limit: Number of records to limit stream entries. A value of0disables limit.teams: Enable/Disable teams supportteam_required(optional): Enable/Disable requirement for teamsapproved_avatar: Enable/Disable automatic avatar approvalleaderboard_show_zero: Show zero points on leaderboardleaderboard_visible_after_event_end: Show leaderboard after event endleaderboard_visible_before_event_start: Show leaderboard before event starttarget_guest_view_deny: Deny guests to target/view and target/versustarget_hide_inactive: Hide inactive targets from the frontend listings. This includes upcoming powerupsnetwork_view_guest: Allow networks to be viewed by guestsforce_findings_to_claim: Enable the enforcement of players needing to have discovered the findings before claiming flagsmaintenance: Enable site-wide maintenance modemaintenance_notification: Send maintenance notification to everyone connected to the frontend interface. The popup can be dismissed but it always comes back. No other notifications are delivered.disable_mailer: Whether to disable or not the platform mailing operationsrequire_activationWhether it is required for users to activate their accountsdisable_registrationWhether online registrations are allowedteam_visible_instancesWhether or not player instances are visible to the rest of the team by default otherwise the per-instance fieldteam_allowedtakes priorityguest_visible_leaderboardsWhether or not the leaderboard will be visible to guest users (this still respects the event start/end restrictions)hide_timezoneWhether or not the Timezone information should be visibledisable_mail_validation: Whether or not mail validation should be disableddisable_ondemand_operations: Whether or not to disable ondemand operations all togetherprofile_discord: Whether the field will be visible under the player profile page. This is different thanprofile_settings_fieldsprofile_echoctf: Whether the field will be visible under the player profile page. This is different thanprofile_settings_fieldsprofile_twitter: Whether the field will be visible under the player profile page. This is different thanprofile_settings_fieldsprofile_github: Whether the field will be visible under the player profile page. This is different thanprofile_settings_fieldsprofile_htb: Whether the field will be visible under the player profile page. This is different thanprofile_settings_fieldsprofile_twitch: Whether the field will be visible under the player profile page. This is different thanprofile_settings_fieldsprofile_youtube: Whether the field will be visible under the player profile page. This is different thanprofile_settings_fieldsteam_only_leaderboards: When enabled, only show team based leaderboards. All other leaderboards are hidden (including player profile ones)writeup_rankings: Whether or not writeup rankings will be visible on leaderboardcountry_rankings: Whether or not country rankings will be visible on leaderboardplayer_point_rankings: Whether or not player point rankings will be visible on leaderboardplayer_monthly_rankings: Whether or not player monthly rankings will be visible on leaderboardplayer_request_delete_allow: Whether or not to allow players to request deletion of their own accountmodule_smartcity_disabled: Whether or not the smartcity module is disabled (hides the menu from backend)module_speedprogramming_enabled: Whether or not the Speed Programming module is enabled (hides the menu from backend also)stream_player_target_help: Whether or not to produce stream entries for players who activate writeups on a target.log_failed_claims: Log failed claim attempts?team_encrypted_claims_allowed: Should we allow claims of flags across teams?target_metadata_visible: Whether or not metadata will be visible to normal players. Admins get to see the metadata no matter this settting.
String and numeric key/val pairs¶
writeup_rulesYour rules for writeup submissionstreasure_secret_key: Encrypt flags per player?event_nameA name for your eventfrontpage_scenarioThe event scenario displayed at thefrontend/, landing page for guests.offense_scenarioA scenario displayed to the users once they have signed into the frontend.defense_scenarioA scenario displayed to the users once they have signed into the frontend.spins_per_dayLimit allowed restarts per day per playeronline_timeoutTimeout in seconds that a user is no longer considered online on the platformchallenge_homeFull path to folder that the challenges will be uploaded to. (default:@web/uploads/)challenge_rootWeb accessible folder that the challenges can be downloaded from. (default:/uploads/)offense_registered_tagPF tag used for registered offense usersdefense_registered_tagPF tag used for registered defense usersfooter_logos: HTML code to display logos for the event on the footer of the page. (PENDING)site_description: Text to be displayed on meta description and social media tags about the sitetwitter_account: The twitter account to link tweets totwitter_hashtags: The twitter coma separated hashtags for tweetsdefault_homepage: Default page to redirect the users after loginbannedIPS: Coma separated list of IPs and IP patterns to be denied access to the interfacemembers_per_team(optional): How many members are allowed per teamevent_start/event_end(optional): When the event starts and stops (timestamp)registrations_start/registrations_end(optional): When the registrations starts and stops (timestamp)profile_visibility: Set the default player profile visibility (users can still change settings)profile_settings_fields: Comma separated list of field names that the users are allowed to change (avatar,bio,country,discord,echoctf,email,fullname,github,htb,pending_progress,twitch,twitter,username,visibility,youtube)profile_card_disabled_actions: Comma separated list of disabled actions. Values include: badge, edit, profileurl, inviteurl, generate-token, copy-token, revoke, disconnect, delete.admin_ids(optional): Comma separated list of admin player IDsadmin_player:<PLAYER_ID>(optional): Set a specific player ID as admintarget_new_days: How many days is target considered asnewon the frontend after creationtarget_restart_log_interval: Interval for restart logstarget_updated_days: How many days the target is considered asupdatedon the frontend after updatediscord_news_webhook: A discord webhook url to send news and announcements topf_state_limits: The content to be appended to the pass rules that enforces limits (default:(max 10000, source-track rule, max-src-nodes 5, max-src-states 2000, max-src-conn 50))force_https_urls: Force URL generation to always be https (sets_SERVER['HTTPS']=on)menu_items: JSON encoded string of items to append to the frontend menuevent_end_notification_title: Title to be used for a notification when the event endsevent_end_notification_body: The body that will be used to send a notification to all players when the event endsplus_writeups: Number to add to the headshots to allow for writeup activations (eg. a value of2means that the player can haveplayer_headshots+2writeups active at most). A value of0means that the player can have only as many writeups active as its own number of headshots.avatar_generator: If set toIdenticonit will use that instead of Robohashavatar_robohash_set: Choose the set for when robohash is configuredmail_verification_token_validity: How long will the mail verification tokens be active for. Can take intervals supported by php andINTERVAL, eg. 10 day, meaning 10 days from nowpassword_reset_token_validity: How long will the password reset tokens be active for. Can take intervals supported by php andINTERVAL, eg. 10 day, meaning 10 days from now-
pflog_min/pflog_max: min/max number of pflog interfaces to use for the match findings. Allows for splitting the findings load into multiple processes. -
player_delete_inactive_after: Delete players with status=9 (inactive) after X days player_delete_deleted_after: Delete players with status=0 (deleted) after X daysplayer_changed_to_deleted_after: Update players with status=8 (changed) into status=0 (deleted) after X days-
player_delete_rejected_after: Delete players that their registration was rejected (status=9 and approval=4) after X days -
dashboard_news_total_pages: Total pages to display on dashboard news dashboard_news_records_per_page: Records per page on dashboard news
Frontend API¶
api_bearer_enableEnable Bearer authorizations API operationsapi_claim_timeoutset the rate limit for the api claim. One request perapi_claim_timeout+1 secondsapi_target_instances_timeoutset the rate limit for the target instances endpoint. One request perapi_target_instances_timeout+1 secondsapi_target_spin_timeoutset the rate limit for the given target operation endpoints. One request perapi_target_spin_timeout+1 secondsapi_target_spawn_timeoutset the rate limit for the given target operation endpoints. One request perapi_target_spawn_timeout+1 seconds
Rate limit¶
rate_limit_requests: Rate limit number of requestsrate_limit_window: Rate limit window in seconds for the requests above
mail configuration¶
mail_fromEmail address used to send registration and password reset mails frommail_fromNameThe name appeared on the email send for registration and password resetsdsnA symphony mailer compatible DSNmail_useFileTransportDo not actually send mails, just save them in a file
Alternatively, instead of DSN the following keys can be used
mail_hostThe mail server host to send mails throughmail_portThe mail server port to connectmail_usernameThe username to authenticate to the mail servermail_passwordThe password to authenticate to the mail serverlocal_domainSet the EHLO mail used when sending mailverify_peer_nameVerify the SSL peer name of the remote server when sending emailverify_peerVerify the remote peer certificate when sending mail
VPN specific keys¶
CA.csrThe CA CSRCA.crtThe CA certificateCA.keyThe CA private keyCA.txt.crtThe text version of the CA certificatevpn-ta.keyThe OpenVPN TLS Auth keyvpngwThe VPN gateway IP or FQDN, that participants of the competition will have to connect to be able to access the targeted infrastructure.
Application specific¶
platform_codenameplatform_version
Subscriptions Specific¶
subscriptions_emergency_suspendTemporary suspend subscriptionssubscriptions_menu_showShow subscriptions left side menu item to logged in userssubscriptions_feature_api: Whether or not the buildin API should be a subscription based feature.stripe_apiKeyStripe API keystripe_publicApiKeyStripe public API Keystripe_webhookSecretStripe webhook secretstripe_automatic_tax_enabledEnable Stripe automatic TAXstripe_webhook_ipsList of IP’s that are allowed to access the stripe webhook endpointstripe_webhookLocalEndpoint: The local endpoint url for the receive of Stripe webhooks. Make it something unique and random so that its not easy to be hit by anyone.stripe_url_prefix: An optional prefix to add with the product, subscription and payment linkst of the backend (egacct_112345667/test/for Stripe test mode).
Player Specific¶
academic_NlongName for academic valueN(starting at 0)academic_NshortShort name for academic valueN(starting at 0)academic_NiconAn icon name associated with this academic grouping (starting at 0)academic_groupingThe number for the supported groups or (0) to Disable support for academic grouping of player activity
example:
backend/yii sysconfig/set academic_grouping 2
backend/yii sysconfig/set academic_0 "SuperSite.com"
backend/yii sysconfig/set academic_1 "AnotherSite.com"
backend/yii sysconfig/set academic_0short "supersite"
backend/yii sysconfig/set academic_1short "anothersite"
backend/yii sysconfig/set academic_0icon "supersite.png"
backend/yii sysconfig/set academic_1icon "anothersite.png"
Validator Configuration Keys¶
verification_resend_ipA number of attempts an IP will stop being able to request verification resend email.0disables the verification completelyverification_resend_ip_timeoutthe timeout for the verification resend_ip counterverification_resend_emailA number of attempts a verification resend email can be requested per email.0disables the verification completelyverification_resend_email_timeoutthe timeout for the verification resend_email counterpassword_reset_ipA number of attempts an IP will stop being able to request password resets.0disables the verification completelypassword_reset_ip_timeoutThe timeout for the reset_ip counterpassword_reset_emailA number of attempts a password reset email can be requested per email.0disables the verification completelypassword_reset_email_timeoutThe timeout for the reset_email countersignup_TotalRegistrationsValidatorNumber of total registrations allowed per single IP overall on the platform.0Disables the check completelysignup_HourRegistrationValidatorNumber of total registrations per IP allowed.0Disables the check completelysignup_StopForumSpamValidatorPercentage of confidence required before we mark an email offensive from StopForumSpam (eg80).0Disables the check completelysignup_VerifymailValidatorEnable or disable verifymail.io validatorverifymail_keyThe API key for verifymail.iosignup_MXServersValidatorEnable/Disable validatingMXandIN ADNS records for given domains.0Disables the check completelyfailed_login_ipA number of failed logins are allowed per IP.0Disables the check completelyfailed_login_ip_timeouttimeout of failed login ip counter expiresfailed_login_usernameA number of failed logins are allowed per username.0Disables the check completelyfailed_login_username_timeoutthe timeout for the failed login_username counter.username_length_minmin length for a usernameusername_length_maxmax length for a username
Dynamic Keys¶
player_type:PLAYER_ID: The type of the playeroffense/defenseplayer:PLAYER_ID:team_player:PLAYER_ID:ovpn:PLAYER_ID: Local IP of player in dotted octet notationovpn:LOCAL_IP: The player ID of the vpn assigned local IPLOCAL_IPovpn_remote:PLAYER_ID: The remote IP of the player