forked from SelfPrivacy/selfprivacy.org.app
update
parent
0ed5fbdd2e
commit
a8262229c0
|
@ -47,8 +47,8 @@ class HetznerApi extends ApiMap {
|
||||||
"ssh_keys": [],
|
"ssh_keys": [],
|
||||||
"volumes": [],
|
"volumes": [],
|
||||||
"networks": [],
|
"networks": [],
|
||||||
"user_data":
|
'user-data':
|
||||||
"#cloud-config\nruncmd:\n- curl https://git.selfprivacy.org/ilchub/selfprivacy-nixos-infect/raw/branch/master/nixos-infect | PROVIDER=hetzner NIX_CHANNEL=nixos-20.09 DOMAIN=$domainName USER=${rootUser.login} PASSWORD=${rootUser.password} HASHED_PASSWORD=${rootUser.hashPassword} bash 2>&1 | tee /tmp/infect.log \nruncmd:\n- curl https://git.selfprivacy.org/ilchub/selfprivacy-nixos-infect/raw/branch/master/nixos-infect | PROVIDER=hetzner NIX_CHANNEL=nixos-20.09 DOMAIN=$domainName USER=${rootUser.login} PASSWORD=${rootUser.password} HASHED_PASSWORD=${rootUser.hashPassword} bash 2>&1 | tee /tmp/infect.log",
|
'#cloud-config\nruncmd:\n- curl https://git.selfprivacy.org/ilchub/selfprivacy-nixos-infect/raw/branch/master/nixos-infect | PROVIDER=hetzner NIX_CHANNEL=nixos-20.09 DOMAIN=$domainName USER=${rootUser.login} PASSWORD=${rootUser.password} HASHED_PASSWORD=${rootUser.hashPassword} bash 2>&1 | tee /tmp/infect.log'
|
||||||
};
|
};
|
||||||
Response response = await client.post(
|
Response response = await client.post(
|
||||||
rootAddress,
|
rootAddress,
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
enum InitializingSteps {
|
||||||
|
setHeznerKey,
|
||||||
|
setCloudFlareKey,
|
||||||
|
setDomainName,
|
||||||
|
setRootUser,
|
||||||
|
createServer,
|
||||||
|
checkCloudFlareDns,
|
||||||
|
startServer,
|
||||||
|
checkSystemDnsAndDkimSet,
|
||||||
|
}
|
|
@ -1,5 +1,3 @@
|
||||||
import 'dart:io';
|
|
||||||
|
|
||||||
import 'package:bloc/bloc.dart';
|
import 'package:bloc/bloc.dart';
|
||||||
import 'package:equatable/equatable.dart';
|
import 'package:equatable/equatable.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
|
@ -9,6 +7,7 @@ import 'package:selfprivacy/logic/api_maps/hetzner.dart';
|
||||||
import 'package:selfprivacy/logic/models/cloudflare_domain.dart';
|
import 'package:selfprivacy/logic/models/cloudflare_domain.dart';
|
||||||
import 'package:selfprivacy/logic/models/server_details.dart';
|
import 'package:selfprivacy/logic/models/server_details.dart';
|
||||||
import 'package:selfprivacy/logic/models/user.dart';
|
import 'package:selfprivacy/logic/models/user.dart';
|
||||||
|
import 'package:basic_utils/basic_utils.dart';
|
||||||
|
|
||||||
part 'app_config_state.dart';
|
part 'app_config_state.dart';
|
||||||
|
|
||||||
|
@ -67,14 +66,20 @@ class AppConfigCubit extends Cubit<AppConfigState> {
|
||||||
];
|
];
|
||||||
var hasError = false;
|
var hasError = false;
|
||||||
for (var address in addresses) {
|
for (var address in addresses) {
|
||||||
var res = await InternetAddress.lookup(address);
|
var res = await DnsUtils.lookupRecord(
|
||||||
if (res.isEmpty || res[0].address != ip4) {
|
address,
|
||||||
|
RRecordType.A,
|
||||||
|
provider: DnsApiProvider.CLOUDFLARE,
|
||||||
|
);
|
||||||
|
if (res.isEmpty || res[0].data != ip4) {
|
||||||
hasError = true;
|
hasError = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (hasError) {
|
if (hasError) {
|
||||||
emit(state.copyWith(error: Exception('dns checking error')));
|
emit(state.copyWith(error: Exception('dns cloudflare checking error')));
|
||||||
|
} else {
|
||||||
|
print('check complete');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import 'dart:io';
|
|
||||||
|
|
||||||
import 'package:cubit_form/cubit_form.dart';
|
import 'package:cubit_form/cubit_form.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
|
@ -26,7 +24,6 @@ class InitializingPage extends StatelessWidget {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
var cubit = context.watch<AppConfigCubit>();
|
var cubit = context.watch<AppConfigCubit>();
|
||||||
print(cubit.state.error);
|
|
||||||
var actualPage = [
|
var actualPage = [
|
||||||
_stepHetzner(cubit),
|
_stepHetzner(cubit),
|
||||||
_stepCloudflare(cubit),
|
_stepCloudflare(cubit),
|
||||||
|
@ -269,9 +266,7 @@ class InitializingPage extends StatelessWidget {
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Spacer(
|
Spacer(flex: 2),
|
||||||
flex: 2,
|
|
||||||
),
|
|
||||||
BrandText.h2('Создать сервер'),
|
BrandText.h2('Создать сервер'),
|
||||||
SizedBox(height: 10),
|
SizedBox(height: 10),
|
||||||
BrandText.body2('Создать сервер'),
|
BrandText.body2('Создать сервер'),
|
||||||
|
@ -280,9 +275,7 @@ class InitializingPage extends StatelessWidget {
|
||||||
onPressed: isLoading ? null : appConfigCubit.createServer,
|
onPressed: isLoading ? null : appConfigCubit.createServer,
|
||||||
title: isLoading ? 'loading' : 'Создать сервер',
|
title: isLoading ? 'loading' : 'Создать сервер',
|
||||||
),
|
),
|
||||||
Spacer(
|
Spacer(flex: 2),
|
||||||
flex: 2,
|
|
||||||
),
|
|
||||||
BrandButton.text(
|
BrandButton.text(
|
||||||
onPressed: () => _showModal(context, _HowHetzner()),
|
onPressed: () => _showModal(context, _HowHetzner()),
|
||||||
title: 'Что это значит?',
|
title: 'Что это значит?',
|
||||||
|
@ -295,7 +288,6 @@ class InitializingPage extends StatelessWidget {
|
||||||
Widget _stepCheck(AppConfigCubit appConfigCubit) {
|
Widget _stepCheck(AppConfigCubit appConfigCubit) {
|
||||||
var state = appConfigCubit.state;
|
var state = appConfigCubit.state;
|
||||||
var error = state.error;
|
var error = state.error;
|
||||||
print(error);
|
|
||||||
return Builder(builder: (context) {
|
return Builder(builder: (context) {
|
||||||
return Column(
|
return Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
@ -320,7 +312,6 @@ class InitializingPage extends StatelessWidget {
|
||||||
duration: Duration(minutes: 10),
|
duration: Duration(minutes: 10),
|
||||||
callback: () {
|
callback: () {
|
||||||
appConfigCubit.checkDns();
|
appConfigCubit.checkDns();
|
||||||
// print(state.server.ip4);
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
@ -341,9 +332,7 @@ class InitializingPage extends StatelessWidget {
|
||||||
return Container(
|
return Container(
|
||||||
height: 500,
|
height: 500,
|
||||||
padding: brandPagePadding2,
|
padding: brandPagePadding2,
|
||||||
child: BrandCard(
|
child: BrandCard(child: child),
|
||||||
child: child,
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
14
pubspec.lock
14
pubspec.lock
|
@ -36,6 +36,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.5.0-nullsafety.1"
|
version: "2.5.0-nullsafety.1"
|
||||||
|
basic_utils:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description:
|
||||||
|
name: basic_utils
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "2.7.0-rc.4"
|
||||||
bloc:
|
bloc:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -539,6 +546,13 @@ packages:
|
||||||
url: "https://pub.dartlang.org"
|
url: "https://pub.dartlang.org"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.3"
|
version: "1.0.3"
|
||||||
|
pointycastle:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: pointycastle
|
||||||
|
url: "https://pub.dartlang.org"
|
||||||
|
source: hosted
|
||||||
|
version: "2.0.0"
|
||||||
pool:
|
pool:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -28,6 +28,7 @@ dependencies:
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
basic_utils: ^2.6.3
|
||||||
build_runner: ^1.10.11
|
build_runner: ^1.10.11
|
||||||
flutter_launcher_icons: ^0.8.1
|
flutter_launcher_icons: ^0.8.1
|
||||||
hive_generator: ^0.8.2
|
hive_generator: ^0.8.2
|
||||||
|
|
Loading…
Reference in New Issue